我有2個數據框是使用熊貓構建的。我可以讓大熊貓告訴我什麼時候我的數據通過使用布爾值索引而落在某個參數之外。 我想在與原始數據相同的圖表上突出顯示我的異常值。我的企圖已經在下面的代碼中被註釋掉了,它們都不起作用。 我的問題是:我如何突出顯示圖中的異常值?突出顯示matplotlib圖中的熊貓數據框的異常值
這是我的代碼,發現在我的dataframes離羣值:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn
#plt.style.use("dark_background")
plt.style.use("seaborn-bright")
x4 = (e[0].time[:47172])
y4 = (e[0].data.f[:47172])
x6 = (t[0].time[:47211])
y6 = (t[0].data.f[:47211])
df4 = pd.DataFrame({'Time': x4, 'Data': y4})
df4['Outlier'] = (df4['Data'] < 2) | (df4['Data'] > 4)
#----This prints out only outliers
df4[df4.Outlier]
df6 = pd.DataFrame({'Time': x4, 'Data': y4})
df6['Outlier'] = (df6['Data'] < 2) | (df6['Data'] > 4)
#----This prints out only outliers
df6[df6.Outlier]
plt.xlabel('Relative Time in Seconds', fontsize=12)
plt.ylabel('Data', fontsize=12)
plt.grid(linestyle = 'dashed')
這只是繪製的原始數據:
plt.plot(x4, y4)
plt.plot(x6, y6)
plt.show()
這是什麼我的數據框看起來像一個例子:
Data Time Outlier
0 0.000 7.343689 True
1 0.000 7.391689 True
2 0.000 7.439689 True
... ... ... ...
47169 2.315 15402.062500 False
47170 0.000 15402.110352 True
47171 0.000 18682.187500 True
[47172 rows x 3 columns]
這些是我的企圖不起作用:
#fig = plt.figure()
#ax=fig.add_subplot(111)
#ax.plot((df4 < 2), (df4 > 4), color="r")
^這只是繪製一條直線,這是不正確的。
#df4.plot((df4['Data'] < 2), (df4['Data'] > 4), color = "r")
^這一個打印出具有「真」和「假上的x軸,而不是時間的曲線圖。
我在想這樣的for循環可能工作,但我不知道如何實現它。任何幫助/反饋將不勝感激。
for True in 'Outlier':
plt.plot(x4, y4, color='r')