我想用matplotlib做一些图,但是有一个问题,我的一些刻度标签太长了。我想知道我是否可以使长刻度标签显示在多行中。
下面是一些代码:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.random(4)
idx = np.arange(4)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_ylim(-0.5, 4-0.5)
ax.set_yticks(b)
ax.tick_params(length=0)
ax.barh(idx, data, zorder=2,
tick_label=["qwertyuioplkjhgfdsa+1s",
"abc","asd","qwerty"])
ax.grid(axis='x')
plt.show()
这是我得到的情节。
正如你所看到的,底部的ytick标签太长了,我想设置每行最多10个字母,所以我希望tick标签可以显示在
qwertyuiop
lkjhgfdsa+
1s
或者在一行中稍微不那么长。
任何帮助将不胜感激!
3条答案
按热度按时间5lhxktic1#
你可以使用python的
textwrap
模块。例如,以10个字符换行:k3bvogb12#
尝试添加\n到它
6tdlim6h3#
您可以在显示图之前修改刻度标签,使其每
max_chars
个字符有一个换行符: