gpt4 book ai didi

python - 在 Matplotlib 中水平对齐两个 Y 轴的 Y 标签

转载 作者:行者123 更新时间:2023-12-04 15:28:09 26 4
gpt4 key购买 nike

我正在尝试创建一个双轴图,在轴的顶部有相同高度的 y 标签

fig, ax = plt.subplots(1, 1)
ax.plot(data_left.index, data_left, label='Preis')
ax.set_ylabel('Preis', fontsize=label_size, rotation=0)
ax.yaxis.set_label_coords(0, 1.01)
ax2 = ax.twinx()
ax2.plot(data_right.index, data_right, label='KGV')
ax2.set_ylabel('KGV', fontsize=label_size, rotation=0)
ax2.yaxis.set_label_coords(1, 1.01)

所以我手动将两个轴的 y 标签坐标高度设置为 1.01,但它们是在完全不同的地方创建的。

enter image description here

当然,在找到匹配位置之前,我可以尝试使用这些值,但我想将这段代码用于不同的数据,并让标签自动放在正确的位置。

  • 为什么这些标签位于完全不同的 y 坐标上?
  • 如何对齐它们的 y 位置,以便对齐适用于任何数据集和标签?

最佳答案

这按您的预期工作(rotation_mode=anchor + verticalalignment=baseline)

fig, ax = plt.subplots(1, 1)
ax.plot(data_left.index, data_left, label='Preis')
ax.set_ylabel('Preis', fontsize=20, rotation=0, rotation_mode="anchor", verticalalignment='baseline')
ax.yaxis.set_label_coords(0, 1.01)
ax2 = ax.twinx()
ax2.plot(data_right.index, data_right, label='KGV')
ax2.set_ylabel('KGV', fontsize=20, rotation=0, rotation_mode="anchor", verticalalignment='baseline')
ax2.yaxis.set_label_coords(1, 1.01)

问题是枢轴不在文本的中心而是在轴上

before rotation

after rotation

关于python - 在 Matplotlib 中水平对齐两个 Y 轴的 Y 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61850567/

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