首页 > 解决方案 > 如何更改 matplotlib 中 xtick 标签的文本方向,使其垂直堆叠?

问题描述

例如,我有一个条形图

import matplotlib.pyplot as plt
h = [10,20,30]
x = [1,2,3]
xticks = ['Group 1', 'Group 2', 'Group 3']
plt.bar(x, height = h, tick_label = xticks)

类似于这个

带有水平 xtick 标签的条形图

但我想旋转/堆叠 xtick 标签,以便文本方向像这样垂直排列(换行到多行)

带有堆叠 xtick 标签的条形图

我想这样做是因为人们可以在不旋转字符方向的情况下垂直阅读文本,否则必须旋转头部才能阅读文本(对汉字特别有用)。

在 MS PowerPoint 中,我可以使用“堆栈”来设置文本方向,但如何在 Python 中做到这一点?

标签: pythonmatplotlib

解决方案


最简单的方法是修改标签的文本以在每个字符之间放置回车符:

import matplotlib.pyplot as plt
h = [10,20,30]
x = [1,2,3]
xticks = ['Group 1', 'Group 2', 'Group 3']
xticks_stacked = ['\n'.join(x) for x in xticks]
plt.bar(x, height = h, tick_label = xticks_stacked)

在此处输入图像描述

注意:要保存此图的图像而不切断标签文本,可以使用:

plt.savefig('filename.jpg', bbox_inches='tight')

推荐阅读