pythonxlabel位置_python – 如何在xaxis结尾设置我的xlabel

设置xlabel时,x参数以轴为单位分配位置,因此0是原点,1是图的右边缘。 y被忽略,因为它预计是一个默认值,就在刻度线之下。

要覆盖此行为,您可以使用Axis set_label_coords method以轴为单位设置位置。您还可以通过提供变换来使用其他单位。

这是一个例子:

import matplotlib.pyplot as plt

import numpy as np

ax = plt.gca()

ax.set_xticks(np.arange(0,6,1))

label = ax.set_xlabel('Xlabel', fontsize = 9)

ax.xaxis.set_label_coords(1.05, -0.025)

plt.savefig('labelAtEnd.png')

plt.show()

导致:

选择x值(1.05)将标签定位在轴框架外。选择y值(-0.025)作为您想要的位置的最佳猜测。使用变换,可能会自动将文本放置在与Tick标签一致的位置。

编辑:

以下是使用变换的扩展示例。使用最后一个ticklabel的变换不是很有帮助,因为它不考虑文本的大小以及它的对齐方式。所以为了得到一个有点想要的效果,我不得不1)使用相同的字体大小为我的x标签,2)将垂直对齐(va)定位到“顶”,并且3)将水平对齐定位到“左”。每个刻度的变换针对x(因为它是x轴)的数据单位和y(0到1)的轴单位设置,但是从x轴移位固定的填充(以像素为单位)。

import matplotlib.pyplot as plt

import numpy as np

ax = plt.gca()

ax.set_xticks(np.arange(0,6,1))

ax.set_yticks(np.arange(0,6,1))

label = ax.set_xlabel('xlabel', ha='left', va = 'top', )#fontsize = 9)

# need to draw the figure first to position the tick labels

fig = plt.gcf()

fig.draw(fig.canvas.get_renderer())

# get a tick and will position things next to the last one

ticklab = ax.xaxis.get_ticklabels()[0]

trans = ticklab.get_transform()

ax.xaxis.set_label_coords(5.1, 0, transform=trans)

plt.savefig('labelAtEnd2.png')

plt.show()

这导致:

你可能感兴趣的:(pythonxlabel位置)