パンダシリーズはこれを引き起こしていますか?pandas matplotlibプロットに奇妙なアーティファクトがあります
plt.plot(df["Column"].as_matrix())
plt.plot(df["Column"])
df["Column"].plot()
実際に同様のアーティファクトを持っていますが、全く同じプロットではありません。
パンダシリーズはこれを引き起こしていますか?pandas matplotlibプロットに奇妙なアーティファクトがあります
plt.plot(df["Column"].as_matrix())
plt.plot(df["Column"])
df["Column"].plot()
実際に同様のアーティファクトを持っていますが、全く同じプロットではありません。
は、あなたが以下のデータフレーム
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())
を呼び出すと、それ自身のインデックスに対してのみy
値(1ずつ増加、0から始まる)をプロットしplt.plot(y)
と同等であるとしましょう。対照的に、
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()
これは多かれ少なかれ起こったことです。データをサブサンプリングして別の列でソートしていましたが、これでインデックスが作成されました。私は、シリーズの "自然な"インデックスは配列インデックスのようになると思っていましたが、明らかにそうではありませんでした。好奇心のため、このような方法でインデックスを作成する理由は何ですか?ただ、[0、series.size]ではなく... ...? – Scott
理由はもちろん、各エントリは定義されたインデックスを持つ必要があります(そうでない場合、インデックスの理由はありません)。これにより、例えば、ソートまたはフィルタリング後にデータを明確に識別できます。 'df = df.reset_index()'を使って、データフレームを新たに索引付けすることができます。 – ImportanceOfBeingErnest
...リレーショナルデータベースと同様です。 – Scott
が役立つかもしれないインデックスを再作成することです。私は、x軸の範囲が2つの方法の間で変化することに気付きます。私は 'pandas.Series'のインデックスが違う振る舞いを引き起こしていると思っています –