如何在matplotlib中的ticklabels和axis之间添加空格?

abj*_*ngs 55 python matplotlib

我已成功增加了我的ticklabels的字体,但现在它们太靠近轴了.我想在刻度标签和轴之间添加一点呼吸空间.

wro*_*onk 70

如果您不想全局更改间距(通过编辑rcParams),并希望采用更清晰的方法,请尝试以下操作:

ax.tick_params(axis='both', which='major', pad=15)

或仅用于x轴

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

  • 这比单个图的迭代更容易.谢谢!对于单轴,您还可以使用:`ax.xaxis.set_tick_params(pad = n)` (5认同)
  • 没有经验的读者很难理解斧头是什么。如果我用 ax = plt.gca() 得到它,那么该命令只会移动标签。 (3认同)

abj*_*ngs 31

看起来matplotlib将这些设置视为rcParams:

pylab.rcParams['xtick.major.pad']='8'
pylab.rcParams['ytick.major.pad']='8'
Run Code Online (Sandbox Code Playgroud)

创建任何数字之前设置它们,你应该没问题.

我查看了源代码,似乎没有任何其他方式以编程方式设置它们.(tick.set_pad()看起来它试图做正确的事情,但是在构建Ticks时似乎设置了填充,之后无法更改.)


tom*_*m10 17

这可以使用,set_pad但你必须重置标签...

for tick in ax.get_xaxis().get_major_ticks():
    tick.set_pad(8.)
    tick.label1 = tick._get_text1()
Run Code Online (Sandbox Code Playgroud)

  • 我认为丑陋在这里有点无关紧要,这仍然是一个很好的解决方案.在很多情况下,你不只是在同一个数字上制作一个情节.这意味着rcParams不是解决方案,因为您要避免全局设置. (5认同)
  • @MikeGM:回想起来,我同意你提到的原因.虽然标签重置不是很优雅,但我会把我的描述看作是丑陋的.谢谢你的评论. (2认同)