在matplotlib中重叠y轴刻度标签和x轴刻度标签

如果我用matplotlib使用下面的代码创build一个阴谋:

import numpy as np from matplotlib import pyplot as plt xx = np.arange(0,5, .5) yy = np.random.random( len(xx) ) plt.plot(xx,yy) plt.imshow() 

我得到一个看起来像附加图像的结果。 问题是最底部的y-tick标签与最左边的x-tick标签重叠。 这看起来不专业。 我想知道是否有一个自动的方式来删除最底部的y-tick标签,所以我没有重叠问题。 代码行越less越好。 在这里输入图像说明

在ticker模块中有一个名为MaxNLocator的类,可以prune kwarg。
使用它可以删除第一个打勾:

 import matplotlib.pyplot as plt from matplotlib.ticker import MaxNLocator import numpy as np xx = np.arange(0,5, .5) yy = np.random.random( len(xx) ) plt.plot(xx,yy) plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower')) plt.show() 

结果:

在这里输入图像说明

您可以在x轴上打勾:

 ax.tick_params(axis='x', pad=15) 

如果尚未存储当前图的variablesax ,则将axreplace为plt.gca()

您也可以填充两个轴来移除axis参数。

解决重叠问题的一个非常好的方法是增加x和y刻度标签的填充(即到轴的距离)。 离开angular落最多的标签可能并不总是被要求。 在我看来,一般来说,如果标签距离轴的距离比默认configuration的距离要远一些,看起来不错。

可以通过matplotlibrc文件或使用命令在脚本脚本中更改填充

 import matplotlib as mpl mpl.rcParams['xtick.major.pad'] = 8 mpl.rcParams['ytick.major.pad'] = 8 

大多数情况下,6的填充也是足够的。

这在这里得到了详细的回答。 基本上,你使用这样的东西:

 plt.xticks([list of tick locations], [list of tick lables])