import matplotlib.pyplot as plt
import pandas as pd
import math
我想從我的資料中洗掉綠線之外的例外值。我的實際資料在資料框中,并且有很多例外值。對于較大的 x 值,縮放綠線的寬度也會很有幫助。
x = [1,1.1,2,3,4,5,5.5,6,7,8,9,10, 10.10]
y = [1,0.1,2,3,4,5,1,6,7,8,9,10, 16]
df = pd.DataFrame(list(zip(x, y)),
columns =['x_vals', 'y_vals'])
plt.scatter(df.x_vals,df.y_vals)
z = np.polyfit(df.x_vals,df.y_vals, 1)
p = np.poly1d(z)
z = plt.plot(df.x_vals,p(df.x_vals),"r--")
z_1 = plt.plot(df.x_vals,p(df.x_vals) 1,"g--")
z_2 = plt.plot(df.x_vals,p(df.x_vals) - 1,"g--")
plt.show()

uj5u.com熱心網友回復:
您可以選擇例外值作為 y 值大于上限或小于下限的點。
以下代碼示例將剩余點用紫色圈起來,并劃掉例外值。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
###import math
x = [1, 1.1, 2, 3, 4, 5, 5.5, 6, 7, 8, 9, 10, 10.10]
y = [1, 0.1, 2, 3, 4, 5, 1, 6, 7, 8, 9, 10, 16]
df = pd.DataFrame(list(zip(x, y)),
columns=['x_vals', 'y_vals'])
plt.scatter(df.x_vals, df.y_vals)
z = np.polyfit(df.x_vals, df.y_vals, 1)
p = np.poly1d(z)
z = plt.plot(df.x_vals, p(df.x_vals), "r--")
delta = 1
z_1 = plt.plot(df.x_vals, p(df.x_vals) delta, "g--")
z_2 = plt.plot(df.x_vals, p(df.x_vals) - delta, "g--")
plt.fill_between(df.x_vals, p(df.x_vals) - delta, p(df.x_vals) delta, color='g', alpha=0.1)
outliers = df[(df.y_vals < p(df.x_vals) - delta) | (df.y_vals > p(df.x_vals) delta)]
cleaned = df[(df.y_vals >= p(df.x_vals) - delta) & (df.y_vals <= p(df.x_vals) delta)]
plt.scatter(cleaned.x_vals, cleaned.y_vals, s=100, fc='none', ec='purple')
plt.scatter(outliers.x_vals, outliers.y_vals, marker='x', s=200, fc='none', ec='r')
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/452282.html
標籤:Python 数据框 matplotlib 错误处理 异常值
上一篇:QUERYELASTISEARCH(illegal_argument_exception)
下一篇:熊貓條形圖沒有列出顏色
