如果我使用以下代码使用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标签的方法,所以我没有 重叠问题。代码行越少越好。
答案 0 :(得分:36)
在自动收报机模块中,有一个名为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()
结果:
答案 1 :(得分:18)
您可以在x轴上填充刻度:
ax.tick_params(axis='x', pad=15)
如果您尚未为当前数字存储变量ax
,请将plt.gca()
替换为ax
。
您也可以删除两个轴,删除axis
参数。
答案 2 :(得分:6)
解决重叠问题的一种非常优雅的方法是增加x和y刻度标签的填充(即到轴的距离)。离开角落大多数标签可能并不总是想要的。在我看来,一般来说,如果标签距离轴稍远,则默认配置给出的标签看起来很好。
可以通过matplotlibrc文件或在绘图脚本中使用命令更改填充
import matplotlib as mpl
mpl.rcParams['xtick.major.pad'] = 8
mpl.rcParams['ytick.major.pad'] = 8
大多数情况下,6的填充也足够了。
答案 3 :(得分:2)
详细解答了here。基本上,你使用这样的东西:
plt.xticks([list of tick locations], [list of tick lables])