DataFrame.plot绘制水平堆叠条形图时xlabel显示在y轴的解决方法
水平堆叠条形图轴标签设置问题
问题
使用pandas绘制水平堆叠条形图时,设置的xlabel参数文本出现在了视觉上的y轴位置,改为ylabel也无法正确对应到目标轴:
ax = df.plot( kind="barh", stacked=True, width=0.9, figsize=(10, 11), colormap="RdYlGn", xlabel='% Respondents' );
解决方法
这是因为pandas的plot方法在绘制水平条形图(barh)时,逻辑轴和视觉轴存在映射混淆,直接通过返回的Axes对象设置标签是最可靠的方式:
- 直接调用Axes对象的
set_xlabel()和set_ylabel()方法
ax = df.plot( kind="barh", stacked=True, width=0.9, figsize=(10, 11), colormap="RdYlGn" ); # 设置视觉上的水平轴(x轴)标签 ax.set_xlabel('% Respondents') # 若需要设置视觉上的垂直轴(y轴)标签,使用: # ax.set_ylabel('你的y轴名称')
如果一定要在plot方法内设置,需要注意:barh模式下,pandas的ylabel参数对应视觉上的x轴,xlabel对应视觉上的y轴,但这种方式容易混淆,更推荐用Axes对象的方法。
内容的提问来源于stack exchange,提问作者mdrishan
相关产品推荐
相关产品推荐

