2016-11-15 7 views
1

私は、インデックスとしてパンダtimedelta値を持つデータフレームにいくつかの列をプロットしようとしています。私がプロットすると、その間に可変の時間があっても、すべての点がx軸に沿って均等に配置されます。パンダtimedeltaでプロットするときの軸間隔間隔

time = [pd.Timestamp('9/3/2016')-pd.Timestamp('9/1/2016'),pd.Timestamp('9/8/2016')-pd.Timestamp('9/1/2016'),pd.Timestam\p('9/29/2016')-pd.Timestamp('9/1/2016')] 
df = pd.DataFrame(index=time, columns=['y'],data=[5,0,10]) 
df.plot() 
plt.show() 

Wrong spacing

代わりに、私は日付の代わりにはtimedeltaを使用した場合、私は、x軸上の適切な間隔を取得:

time = [pd.Timestamp('9/3/2016'),pd.Timestamp('9/5/2016'),pd.Timestamp('9/20/2016')] 
df = pd.DataFrame(index=time, columns=['y'],data=[5,0,10]) 
df.plot() 
plt.show() 

Right spacing

これを取得する方法はあります正しく表示するには?

答えて

0

現在のところ、パンダではまだ完全にはサポートされていません。詳細はthis issue on Githubをご覧ください。

迅速な回避策については、使用することができます:ここでは

import matplotlib.pyplot as plt 
plt.plot(df.index, df.values) 

は、あなたがそれらを読みやすくするためティックで遊ぶことができる方法の一例(だけではなく、非常に多数)

import matplotlib as mpl 
import datetime 
fig, ax = plt.subplots() 
ax.plot(df.index, df.values) 
plt.xticks([t.value for t in df.index], df.index, rotation=45) 
plt.show() 
です

result

+0

すばらしい、ありがとう! –

+0

ちょうどその後にダニをフォーマットする方法の例を追加しました。彼らはデフォルトでゴミが見えるので(非常に大きな数は基本的に...)。 それが役に立ちましたら、あなたの問題を解決した場合は、投票に回答して受け入れてください。ありがとう! –