python画图时横坐标文字太长,如何换行显示

img


画柱状图时,横坐标字过多,都重叠在一起了,看不清,如图所示。倾斜文字的话太长了不好看,我想让这些文字用几行显示,比如2行3行或者很多。

感觉可以直接对标签文字加'\n'实现

import matplotlib.pyplot as plt

# 每行最多length个字符
def convert(name, length = 3):
    new_name = ''
    for i in range(len(name)):
        if i and i % length == 0:
            new_name += '\n'
        new_name += name[i]
    return new_name

# test
names = ['oiiaioooooiai', 'test']
values = [3, 5]

fig = plt.figure(figsize = (16, 8))
ax1 = fig.add_subplot(1, 2, 1)
ax2 = fig.add_subplot(1, 2, 2)

ax1.bar(names, values)
ax2.bar([convert(name) for name in names], values)

plt.show()

img