python - 在matplotlib中,如果一个刻度标签太长,如何约束长度并让它显示为多行?
问题描述
我想用 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
或者在一行中没有那么长。
任何帮助,将不胜感激!
解决方案
你可以使用textwrap
python的模块。例如以 10 个字符换行:
import textwrap
f = lambda x: textwrap.fill(x.get_text(), 10)
ax.set_yticklabels(map(f, ax.get_yticklabels()))
推荐阅读
- angular - 角度,ng-zorro:对象作为标签
- python-3.x - 为什么我的网络返回一个大于输出空间长度的整数
- javascript - 构造函数式银行余额工具
- php - 在 PHP (HTML) 中导航并将值传递到另一个页面
- c++ - C++ 中的别名声明
- swiftui - SwiftUI 的间距问题
- hadoop - Google Cloud 上的 YARN Giraph 应用程序 - 找不到胖罐子
- php - json - 如何从用户输入将出现在 %s 的 json 中获取数据
- python-3.x - 二叉搜索树的节点计数器
- ajax - 对 PartialViewResult 的 Ajax 调用不会将 Div 替换为 PartialView