gpt4 book ai didi

python - 如何使用matplotlib定义相对于轴的ylabel位置?

转载 作者:行者123 更新时间:2023-12-03 16:11:18 26 4
gpt4 key购买 nike

我需要使用matplotlib独立于yticklabel精确控制ylabel的位置。这是因为我有一个matplotlib动画,当我更改yticklabels时,当前ylabel会跳来跳去。这是不希望的。

该文档似乎只允许我指定距yticklabels最左侧部分的距离。 (这不能解决问题,而实际上是引起问题的原因)

一种解决方案是手动粘贴标签。但是有没有更简单的方法?

最佳答案

您可以通过在轴上显式添加文本来模拟普通y标签的行为。如果y极限变化很大,最好通过将文本放置在轴坐标而不是数据坐标中来完成。这是通过transform关键字参数完成的,如下所示:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
t = ax.text(-0.1, 0.5, 'Y label', rotation=90,
verticalalignment='center', horizontalalignment='right',
transform=ax.transAxes)
ax.set_ylim(-10, 10) # Change y-limits, label position won't change.

这会将文本放置在轴的中间,并稍微向左。轴数据限制的更改对文本没有影响,因为它始终在轴坐标中定义。类似地,缩放图或轴(使用鼠标调整窗口大小,使用 fig.set_size_inches等)将y标签相对于axes框本身保持在适当的位置,正是您想要的标签。

您可能必须使用标签的x位置,以确保它在动画过程中随着刻度线的变化而不会与刻度线重叠。

关于python - 如何使用matplotlib定义相对于轴的ylabel位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61684427/

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