Python Matplotlib标记重叠

Python Matplotlib标记重叠,python,matplotlib,labels,Python,Matplotlib,Labels,如果我更改matplotlib字体大小,例如mpl.rc('font',size=20),我的记号会相互重叠。有什么解决办法吗?我不想自己定义记号,也不想旋转记号,我想mpl应该可以自己做。如果字体太大,你需要给文本留出更多的空间。可以通过旋转标签来执行此操作: plt.xticks(rotation=45) for tick in ax.xaxis.get_major_ticks(): tick.label.set_fontsize(14) ,或更改标签的字体大小: plt.xt

如果我更改matplotlib字体大小,例如
mpl.rc('font',size=20)
,我的记号会相互重叠。有什么解决办法吗?我不想自己定义记号,也不想旋转记号,我想mpl应该可以自己做。

如果字体太大,你需要给文本留出更多的空间。可以通过旋转标签来执行此操作:

plt.xticks(rotation=45)
for tick in ax.xaxis.get_major_ticks():
     tick.label.set_fontsize(14)
,或更改标签的字体大小:

plt.xticks(rotation=45)
for tick in ax.xaxis.get_major_ticks():
     tick.label.set_fontsize(14)

除了@armatia的方法。隐藏一些xtickslabel也是一个解决方案。
代码如下:

for label in ax.xaxis.get_ticklabels()[::2]:
    label.set_visible(False)   

如果您试图像@armatita的答案中那样旋转标签,但没有对
plt
对象的引用(如所有示例所假设的),您可以通过对axis对象的引用来执行此操作:

axis.tick_参数(axis='x',labelrotation=45)

记号重叠,还是记号标签重叠?您可以发布图像吗?@fmonegaglia在这种情况下,您需要减小字体大小或减少勾号标签的数量。我已经编辑了答案。但关键是这与输出非常相关。一旦知道字体,mpl是否应该能够理解要放多少个记号?@fmonegaglia mpl不会自动这样做,因为字体和文本通常遵循与典型标记定位(轴值)不同的规则。您可以通过调整窗口大小来测试这一点。请注意,轴记号是如何重新绘制为新比例的,但文字大小保持不变。如果希望管理文本,则需要构建自己的处理程序。