重叠y轴刻度标签和x轴在matplotlib
问题描述:
刻度标签如果我创建使用下面的代码matplotlib一个情节:重叠y轴刻度标签和x轴在matplotlib
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标签,所以我没有 的重叠问题。代码行越少越好。
答
在股票模块有一个名为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和y蜱填充标签(即到轴的距离)。离开角落最多的标签可能并不总是被要求。在我看来,一般来说,如果标签距离轴比标准配置给出的距离稍远一些,看起来不错。
的填充可以通过matplotlibrc文件或在您的剧情脚本,通过使用命令
import matplotlib as mpl
mpl.rcParams['xtick.major.pad'] = 8
mpl.rcParams['ytick.major.pad'] = 8
大多数时候发生变化,6填充也是足够的。
答
可以垫在x轴的刻度:
ax.tick_params(axis='x', pad=15)
与plt.gca()
更换ax
如果你还没有对目前的数字存储变量ax
。
您也可以填充两个轴,删除axis
参数。
看起来非常优雅,但不幸的是似乎不能在3D图上工作,例如'plot_surface'。 – metakermit 2014-06-11 08:14:21