簡體   English   中英

熊貓 matplotlib 情節有奇怪的文物

[英]pandas matplotlib plot has weird artifacts

熊貓系列是什么原因造成的?

plt.plot(df["Column"].as_matrix())

好情節


plt.plot(df["Column"])

糟糕的情節


df["Column"].plot()

實際上有類似的文物,但不是完全相同的情節。

假設您有以下 DataFrame

x = [2,1,3,6,5,6,7]
y = [1,2,5,1,1,6,1]
df = pd.DataFrame({"y" : y }, index=x)

然后打電話
plt.plot(df["y"].as_matrix())等價於plt.plot(y) ,它只根據自己的索引繪制y值(從 0 開始,遞增 1)。
相比之下,
plt.plot(df["y"])等效於plt.plot(x,y) ,它根據數據幀的索引繪制y值。 如果未對這些索引進行排序,則該圖看起來會失真。 (熊貓繪圖命令也是如此。)

這是一個完整的例子。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"y" : [1,2,5,1,1,6,1] }, index=[2,1,3,6,5,6,7])

plt.plot(df["y"].as_matrix(), lw=3, label='plt.plot(df["y"].as_matrix())')
plt.plot(df["y"], lw=3, label='plt.plot(df["y"])')
df["y"].plot(ax=plt.gca(), linestyle="--", color="k", label='df["y"].plot()')

plt.legend()
plt.show()

在此處輸入圖片說明

能夠使用上述任何方法的最簡單的解決方案是重新索引數據幀

df = df.reset_index()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM