如何在 matplotlib python 中自动调整文本大小?

2024-01-01

我在 matplotlib 中有一个绘图,我的问题是,因为当绘图窗口调整​​大小时 x 轴将字符串作为值,它们重叠并且无法清晰读取。

如果调整窗口大小,图例也会发生类似的情况,它不会调整大小。

有这样的设置吗?


不完全是。 (看一下the new matplotlib.pyplot.tight_layout()功能 http://matplotlib.sourceforge.net/users/tight_layout_guide.html不过,对于一些模糊相似的东西......)

然而,长 x-tick 标签的常见技巧只是旋转它们。

例如,如果我们有重叠 xticklabels 的东西:

import matplotlib.pyplot as plt

plt.plot(range(10))
labels = [15 * repr(i) for i in range(10)]
plt.xticks(range(10), labels)
plt.show()

我们可以旋转它们以使其更易于阅读:(关键是rotation=30。致电给plt.tight_layout()只需调整绘图的底部边距,以便标签不会超出底部边缘。)

import matplotlib.pyplot as plt

plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30)
plt.tight_layout()
plt.show()

默认情况下,刻度标签位于刻度的中心。对于旋转的刻度线,将标签的左边缘或右边缘从刻度线开始通常更有意义。

例如,像这样(右侧,正旋转):

import matplotlib.pyplot as plt

plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=30, ha='right')
plt.tight_layout()
plt.show()

或者这个(左侧,负旋转):

import matplotlib.pyplot as plt

plt.plot(range(10))
labels = [10 * repr(i) for i in range(10)]
plt.xticks(range(10), labels, rotation=-30, ha='left')
plt.tight_layout()
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 matplotlib python 中自动调整文本大小? 的相关文章

随机推荐