gpt4 book ai didi

python - 使用 setp 在 matplotlib 紧凑布局中包装长 y 标签

转载 作者:IT老高 更新时间:2023-10-28 22:18:20 25 4
gpt4 key购买 nike

我一直在尝试在我的代码中为长标签换行。我尝试了之前建议的 textwrap 方法 here ,但我的代码通过使用 pyplot.setp() 方法从 csv 导入的数组定义 yticklabels。否则我使用 tight_layout() 进行格式化。

所以问题是 - 有没有办法将非常长的 y 标签轻松包装到换行符?

这是一些我想要修复的示例代码:

import numpy as np
import matplotlib.pyplot as plt

labels=('Really really really really really really long label 1', 'Really really really really really really long label 2', 'Really really really really really really long label 3')
values=(30,50,40)

fig = plt.figure()
ax=fig.add_subplot(111)

plt.ylim((0,40))
for i in np.arange(3):
plt.barh(15*i, values[i])

plt.yticks(15*np.arange(3))
plt.setp(ax.set_yticklabels(labels))

plt.tight_layout()
plt.show()

这会绘制这样的图 enter image description here我希望标签在固定宽度后转到换行符。有什么想法吗?

最佳答案

我尝试在标签上使用 textwrap,它对我有用。

from textwrap import wrap
labels=['Really really really really really really long label 1',
'Really really really really really really long label 2',
'Really really really really really really long label 3']
labels = [ '\n'.join(wrap(l, 20)) for l in labels ]

在你的代码中插入这个给我们:

Wrapped labels

关于python - 使用 setp 在 matplotlib 紧凑布局中包装长 y 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com