默认情况下,matplotlib
在轴的中心绘制轴标签。我想移动标签,使其与轴的末端对齐,无论是水平轴还是垂直轴。例如,对于水平轴,我想看到:
+--------------------+
| |
| |
| |
| |
| |
+--------------------+
label
是否可以在matplotlib的全局设置下实现?
3条答案
按热度按时间zengzsys1#
更新
当前2023年的Matplotlib有一个新的关键字
loc=…
,用于plt.[xy]label
。来自
xlabel
文档字符串loc : {'left', 'center', 'right'},
The label position. This is a high-level alternative for passing
parameters *x* and *horizontalalignment*.
你可以简单地写
我的另一个答案仍然是一个很好的答案,因为获取一个对象,修改它并设置它本身就是一个好主意,但这里它是一个替代的,更干净的解决方案:
正如你所看到的,没有更多的魔术数字,并适用于
xlabel
和ylabel
。请注意,在这两种情况下,我们都将更改水平对齐方式,当我第一次更改
ylabel
中的垂直对齐方式时,我最终清楚了原因。hof1towb2#
从v3.3开始,您现在可以使用
set_xlabel
和set_ylabel
的loc
参数来设置这些参数:|
|
|
| --|--|
e5njpo683#
一个特别的解决方案,它引入了一个神奇的值
25
,我不太理解,至少可以说,是一个更明智的方法是使用
axes.xaxis
选择的任何y
位置.1.使用父容器的
.get_object(...)
方法获取对象1.修改对象
1.使用父对象的
.set_object(...)
方法更新它在我们的例子中,我们做了一个图,然后我们得到了当前轴
ax
,它包含了xaxis
,xaxis
包含了我们想要修改其位置和对齐的label
。至于直接在
matplotlib
的默认值上操作,我浏览了plt.rcParams
的数据结构,但没有发现任何有用的东西。当然,这并不意味着这是不可能的,只是我看不到一个可行的解决方案。