2016-09-28 9 views
2

私は棒グラフを作成し、x軸に複数の値を表示しています。デフォルトでは、以下のように「、」で区切られています。昏睡の代わりに、下の画像に描かれているように、どのように値を重ねて重ねて表示できますか?これは、複数の値を表示したいときに、より大きなグラフを可能にするためにx軸のスペースを節約します。matplotlibで軸のラベルを積み重ねます

import pandas as pd 
import matplotlib as plt 

dfex = pd.DataFrame({'City': ['LA', 'SF', 'Dallas'], 
'Lakes': [3, 9, 6], 
'Rivers': [1, 0, 0], 
'State': ['CA', 'CA', 'TX'], 
'Waterfalls': [2, 4, 5]}) 

myplot = dfex.plot(x=['City','State'],kind='bar',stacked='True') 

enter image description here

答えて

2

あなたは、単にあなたが望むものを達成するために、x軸の目盛りラベルをハックすることができます。

ticks = myplot.xaxis.get_ticklabels() 
new_ticks = ['\n'.join(t.get_text()[1:-1].split(', ')) for t in ticks] 
myplot.xaxis.set_ticklabels(new_ticks) 

enter image description here

+0

おかげヴラス!私もsns.factorplotでこれを行う方法を理解しようとしています。 tick = fplot.xaxis.get_ticklabels() - > AttributeError: 'FacetGrid'オブジェクトに 'xaxis'という属性がありません。 factorplotsの目盛りラベルを取得する方法を知っていますか? – sparrow

+1

Afaik 'FacetGrid'は基本的にサブプロットの集合です。個々の' xaxis'インスタンスにアクセスするには、 'fplot.fig.axes [0] .xaxis'のようなものを使って行う必要があります。 –

関連する問題