相关疑难解决方法(0)

使用setp在matplotlib紧密布局中包装长y标签

我一直在尝试在我的代码中为长标签包装文本.我试过textwrap方法建议早在这里,但我的代码通过从使用一个CSV文件导入的数组定义yticklabels pyplot.setp()方法.我正在使用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()
Run Code Online (Sandbox Code Playgroud)

这绘制了这样的东西 在此输入图像描述 我希望标签在固定宽度后转到换行符.有任何想法吗?

python matplotlib

29
推荐指数
2
解决办法
1万
查看次数

自动换行 matplotlib x 轴标签

我正在尝试绘制带有长 x 标签字符串的图表。这篇文章描述了一个类似的问题(如何使用 自动换行 y 轴标签tight_layout),但对我来说不起作用,因为tight_layout改变了比例。另一篇文章描述了一种无法实现轴标签自动换行的方法 - 该包textwrap需要指定要换行的字符数。

我的代码:

import matplotlib.pyplot as plt
plt.figure()
plt.bar([0,1,2,3],[0,1,4,9])        
labels = ['superdupersuperduperlonglabel0','superdupersuperduperlonglabel1',
    'superdupersuperduperlonglabel2','superdupersuperduperlonglabel3']
plt.xticks([0,1,2,3],labels, wrap = True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是结果图,x 标签重叠: 这是结果图,x 标签重叠。

根据 matplotlib 文档:

文本属性可用于控制标签的外观。

wrap = True似乎没有正确包装 x 标签。有什么建议吗?

python plot matplotlib

5
推荐指数
0
解决办法
2487
查看次数

标签 统计

matplotlib ×2

python ×2

plot ×1