2016-12-17 9 views
1

Matplotlibグラフのx軸にテキストが必要です。私が持っている:Matplotlib(Python)の棒グラフにテキストを追加

import matplotlib.pyplot as plt 
x=[1,2,3,4,5,6,7,8,9,10,11,12] 
y=[5.3, 6.1, 25.5, 27.8, 31.2, 33.0, 33.0, 32.8, 28.4, 21.1, 17.5, 11.9] 

plt.bar(x,y, color='g') 

plt.xlabel('x') 
plt.ylabel('y') 
plt.title("Max Temperature for Months") 
plt.legend() 
plt.show() 

そして、私の出力は、次のとおりです。

My graph

私はそれは私にエラーを与えて、テキスト(文字列)でx=[ ]リストを交換する方法がわかりません。

私の希望グラフ:次のように

My desied graph

+0

私の答えが役に立ったらそれを受け入れることができますか?ありがとう – Chuck

答えて

3

plt.xticks()機能を使用します。

import matplotlib.pyplot as plt 
x=[1,2,3,4,5] 
y=[1,2,3,4,5] 

plt.bar(x,y, color='g') 

plt.xlabel('x') 
plt.ylabel('y') 

はあなたのグラフ上に行くために、いくつかのラベルを生成します。文字列のリストは、あなたのxyリストと同じ長さでなければなりません:

LABELS = ["M","w","E","R","T"] 

は、以下でそれらをプロット:

plt.xticks(x, LABELS) 

plt.title("Max Temperature for Months") 
plt.legend() 
plt.show() 

は、ここで例を参照してください:http://matplotlib.org/examples/ticks_and_spines/ticklabels_demo_rotation.html

編集:の詳細についてはをラベルの位置/向き/位置を調整するには、matplotlib apiのドキュメントとこの質問を参照してください:matplotlib ticks position relative to axis

編集:追加画像: http://imgur.com/igjUGLb

編集:Matplotlib Python Barplot: Position of xtick labels have irregular spaces between eachother:あなたが必要とする場所や向きを達成するために、あなたはこの質問に素晴らしい例を見つけるでしょう。

実装:

b = plt.bar(x,y, color='g') 
xticks_pos = [0.5*patch.get_width() + patch.get_xy()[0] for patch in b]   
plt.xticks(xticks_pos, LABELS,rotation = 45) 

ができます:助けhttps://imgur.com/a/78Esz 希望を。

+1

'xticks_pos'の代わりに' plt.bar(...、align = 'center') 'を使うことができます。 – unutbu

+1

'LABELS'を定義するには' import datetime'、 'LABELS =' DT.datetime.strftime(DT.date(2001、xi、1)、 '%B')x 'の 'xi'を使用できます。 – unutbu

+0

@unutbu大きなアドバイス。整列を完全に忘れてしまった。とても清潔です。 – Chuck

関連する問題