gpt4 book ai didi

python - 如何在 xaxis 末尾设置我的 xlabel

转载 作者:IT老高 更新时间:2023-10-28 21:56:51 24 4
gpt4 key购买 nike

我希望我的 x 轴有这种格式的标签

0 1 2 3 4 5 Xlabel

但我尝试下面的代码导致我只写了 2 行代码

self.axes.set_xticks(np.arange(0,6,1))
self.axes.set_xlabel('Xlabel', fontsize=9,x=1,y=1)

=> 我的结果:(

0 1 2 3 4 5 
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()

导致: enter image description here

选择 x 值 (1.05) 将标签定位在轴框架之外。 y 值 (-0.025) 被选为对所需位置的最佳猜测。使用转换,可以自动将文本定位在 Tick 标签内。

编辑:

这是一个使用转换的扩展示例。使用最后一个刻度标签的变换不一定更有帮助,因为它没有考虑文本的大小和对齐方式。因此,为了获得某种理想的效果,我必须 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()

这会导致:

enter image description here

关于python - 如何在 xaxis 末尾设置我的 xlabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9290938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com