【问题标题】:How to change separation between tick labels and axis labels in Matplotlib如何在 Matplotlib 中更改刻度标签和轴标签之间的分隔
【发布时间】:2014-02-27 15:03:20
【问题描述】:

当我使用 Matplotlib 时,我的轴标签通常看起来不太好(太接近刻度标签)。

如何设置刻度标签和轴标签之间的距离?我只需要扩大“星数”标签和相应刻度标签之间的距离。也许乳胶\vspace{} 正在工作,但我不知道如何实现它。 fig.subplots_adjust(left=) 不是解决方案。

【问题讨论】:

  • 如果我理解正确,您正在寻找labelpad 方法中的labelpad 参数。这需要一些点作为轴和相应标签之间的间距。
  • 谢谢!!!写下这个作为答案。
  • 你知道如何为 Basemap (Matplotlib) 中的“drawparallels”做同样的事情吗?

标签: python matplotlib plot axis-labels spacing


【解决方案1】:

要使轴标签远离轴,您可以在用于设置标签的相应方法的可选labelpad 参数中包含一个参数,即ax.set_ylabel()ax.set_xlabel()。此参数采用标量,即轴与 points 中给出的标签之间的间距。

为了在使用Basemapdrawparallels()方法时达到相同的效果,我相信你可以在参数xoffsetyoffset中包含一个参数,这取决于你想要哪个轴更改文本的位置。这些参数的参数具有地图宽度的“单位”,例如xoffset=0.05 使 x-ticks 的偏移量为地图宽度的 5 %。

【讨论】:

  • 回滚到我原来的答案,请参阅this post 了解有关原因的更多信息。
  • 虽然这个答案对提问者来说是令人满意的,但它并不完全正确:labelpad not 设置轴和轴标签之间的距离,它设置了轴之间的距离刻度标签和轴标签。
【解决方案2】:

这是一个真的主观问题,但无论如何我都会采取行动:

figsize kwarg 以英寸为单位获取图形的宽度和高度。

A4 纸为 8.3" x 11.7"。因此,假设为了争论,您需要 1" 的边距。

paperheight = 11.7
paperwidth = 8.3
margin = 1.0

fig = plt.figure(figsize=(paperwidth - 2*margin, paperheight - 2*margin))

# plotting stuff

fig.tight_layout()
fig.savefig(...)

tight_layout() 的调用将为标签提供更多空间,并确保所有内容都尽可能地扩展到图形边缘。

【讨论】:

  • 对不起,我已经改变了我的问题。
  • @user2579566 我明白了。然而,它并没有改变我的答案。只需根据需要更改 paperheightpaperwidth 并根据需要更改 margin
  • @user2579566 你能更具体一点吗?对我有用。
  • 当我使用您的值 (11.7,8.3,1.0) 时,我的坐标区标签与数字重叠
  • @user2579566 除非您显示正在使用的代码,否则无法诊断。你打电话给fig.tight_layout()?
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 2020-03-29
  • 2011-02-27
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多