作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我希望我的 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()
导致:
选择 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()
这会导致:
关于python - 如何在 xaxis 末尾设置我的 xlabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9290938/
我是一名优秀的程序员,十分优秀!