2017-06-12 12 views
4

pandas.DataFrame.plotは、データフレームからデータをプロットする便利な方法です。しかし、私はこの方法で軸をどのようにフォーマットするのか分かりません。私は、x軸はただのラベルを持っていることを好むだろうパンダプロットメソッドで作成されたチャートのx軸のフォーマット

df.plot(kind='bar') 

example bar chart

:たとえば、

import pandas as pd 
import datetime 

df = pd.DataFrame(index = [datetime.datetime(2016, 7, 2, 0, 0), 
        datetime.datetime(2016, 8, 6, 0, 0), 
        datetime.datetime(2016, 9, 13, 0, 0), 
        datetime.datetime(2016, 10, 26, 0, 0), 
        datetime.datetime(2016, 11, 2, 0, 0)], 
        data = {'total' : [5, 3, 1, 0, 2]}) 

df 

出力

  total 
2016-07-02 5 
2016-08-06 3 
2016-09-13 1 
2016-10-26 0 
2016-11-02 2 

今すぐパンダのプロット法でプロット月の3文字形式 - 7月8月9月10月11月

これはパンダプロットの方法で可能ですか、代わりにmatplotlibを使用してグラフを作成する必要がありますか?

答えて

2

私は月にXのラベルを変更するための簡単な方法を発見しました。

import pandas as pd 
import datetime 

df = pd.DataFrame(index = [datetime.datetime(2016, 7, 2, 0, 0), 
        datetime.datetime(2016, 8, 6, 0, 0), 
        datetime.datetime(2016, 9, 13, 0, 0), 
        datetime.datetime(2016, 10, 26, 0, 0), 
        datetime.datetime(2016, 11, 2, 0, 0)], 
        data = {'total' : [5, 3, 1, 0, 2]}) 

ax = df.plot(kind='bar') 
x_labels = df.index.strftime('%b') 
ax.set_xticklabels(x_labels) 

plt.show() 

example chart

5

あなたは、カテゴリバープロットとして、実際の日付とは無関係に、すなわち等距離バーグラフを表示したい場合は、あなただけのxticklabelsを再フォーマットすることができ、%bは月の省略名と斧で

f = lambda x: datetime.datetime.strptime(x, '%Y-%m-%d %H:%M:%S').strftime('%b') 
ax.set_xticklabels([ f(x.get_text()) for x in ax.get_xticklabels()]) 

されますあなたのプロットの軸。

コンプリート例:

import pandas as pd 
import datetime 
import matplotlib.pyplot as plt 

df = pd.DataFrame(index = [datetime.datetime(2016, 7, 2, 0, 0), 
        datetime.datetime(2016, 8, 6, 0, 0), 
        datetime.datetime(2016, 9, 13, 0, 0), 
        datetime.datetime(2016, 10, 26, 0, 0), 
        datetime.datetime(2016, 11, 2, 0, 0)], 
        data = {'total' : [5, 3, 1, 0, 2]}) 

ax = df.plot(kind='bar') 

f = lambda x: datetime.datetime.strptime(x, '%Y-%m-%d %H:%M:%S').strftime('%b') 
ax.set_xticklabels([ f(x.get_text()) for x in ax.get_xticklabels()]) 

plt.show() 

enter image description here

+0

おかげで、これは本当に私が理解して助けています。 –

関連する問題