2013-12-16 21 views
5

pandas.DataFrame.plot()を実行するときにグリッドフォーマットを制御する方法はありますか?pandas:pd.DataFrame.plot()のx軸にマイナーな罫線を表示するには

具体的には、DateTimeIndexを持つx軸を持つDataFrameをプロットするためのマイナーグリッド線を表示したいと考えています。

これはDataFrame.plot()で可能ですか?

df = pd.DataFrame.from_csv(csv_file, parse_dates=True, sep=' ') 

答えて

7

これは毎週の周波数でのマイナーxticksとグリッドとS & P500プロットします:たぶんこの

import pandas.io.data as web 
ts = web.DataReader("^GSPC", "yahoo", start=dt.date(2013, 6, 1))[ 'Adj Close' ] 

ax = ts.plot() 
xtick = pd.date_range(start=ts.index.min(), end=ts.index.max(), freq='W') 
ax.set_xticks(xtick, minor=True) 
ax.grid('on', which='minor', axis='x') 
ax.grid('off', which='major', axis='x') 

enter image description here

+0

いいですが、私の質問にあるように、DataFrameを使ってこれをどうやって行うことができますか?私はDataFrameのためのts.index.min()の等価物を見つけることができません - df.idxmin()はシリーズを返します... – user2846226

+0

DataFrame 'df.index.min()'の@ user2846226も同様に動作します、それがマルチインデックス –

+0

でない限り、それは確かに、ユーザーエラー – user2846226

1

DataFrame.plot() matplotlibのからAxesオブジェクトを返す必要があります。

のでax = df.plot(...)で、あなたが行うことができます:

ax.xaxis.grid(True, which='minor', linestyle='-', linewidth=0.25, ...)

+0

素晴らしい、私はplot()がAxesオブジェクトを返したことに気付きませんでした。だから私はノートパソコンはAxesオブジェクトの存在を検出するため、scilabモードでIPythonノートブックにpngグラフが表示されると思いますか? – user2846226

2

を機能は去年存在しませんでしたが、バージョン0.19.2ではdo:

df.plot(grid=True) 

docを参照してください。

関連する問題