在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
,则将ax
replace为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])