2016-09-28 3 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') 
당신은 단순히 당신이 원하는 것을 달성하기 위해 x 축 틱 라벨을 해킹 할 수

enter image description here

답변

2

.

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'와 같은 방식으로해야합니다. –

관련 문제