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

如何在matplotlib python中自动调整文本大小?,python,matplotlib,Python,Matplotlib,我在matplotlib中有一个绘图,我的问题是,因为当绘图窗口调整大小时,x轴将字符串作为值,它们重叠,无法清晰地读取 类似的情况也发生在图例上,如果调整窗口大小,则图例不会调整大小 有这样的设置吗?不完全是这样。(不过,看看有没有什么模糊不清的相似之处……) 然而,使用长x记号标签的常见技巧只是旋转它们 例如,如果我们有重叠的Xticklabel: import matplotlib.pyplot as plt plt.plot(range(10)) labels = [15 * repr

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

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

有这样的设置吗?

不完全是这样。(不过,看看有没有什么模糊不清的相似之处……)

然而,使用长x记号标签的常见技巧只是旋转它们

例如,如果我们有重叠的Xticklabel:

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()

我们可以旋转它们以使它们更易于阅读:(关键是
旋转=30
。调用
plt.tight_layout()
只需调整绘图的底边距,这样标签就不会离开底边。)

默认情况下,记号标签以记号为中心。对于旋转的记号,标签的左边缘或右边缘从记号开始通常更有意义

例如,类似这样的内容(右侧,正旋转):

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


Joe,如果我不想要任何数字并赢回空间,那么制作的画布没有边距,只有正方形(理想情况下只有图形,没有线条),该怎么办?我试图在gtk容器中显示它,我需要它精确定位
a.axis('off')
只删除数字,而
a.margins(0,tight=True)
似乎无法操作。。。救命啊@xaccrocheur-
ax.边距
控制自动缩放数据限制的工作方式,而不是绘图的“外部”边距。如果要控制轴占据画布的多少,请1)使用
ax=fig.add_轴([0,0,1,1])
,手动制作占据整个图形的轴,或2)使用
subplot\u adjust
更改子图的“外部”边距(例如
fig.subplot\u adjust(0,0,1,1)
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()