python - 在 Matplotlib 中水平对齐两个 Y 轴的 Y 标签
问题描述
我正在尝试创建一个双轴图,在相同高度的轴顶部带有 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,但它们是在完全不同的地方创建的。
当然,我可以使用这些值直到找到匹配的位置,但我想将此代码用于不同的数据,并自动将标签放在正确的位置。
- 为什么这些标签在完全不同的 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)
问题是枢轴不在文本的中心,而是在 yaxis
推荐阅读
- python - 无法运行 sklearn 机器学习模型
- c# - 删除不可访问的文件和文件夹
- powershell - PowerShell - 如何删除签名
- mongodb - 查找特定于另一个字段的单个值的字段值,并且该字段的任何其他值都不存在
- vba - 如何对 VBA 代码进行单元测试?- 两个不同的指针
- css - Bootstrap 4 下拉列表 ul 列表不正确和固定位置
- c# - 实体框架搞砸了我的多对多自我关系
- angular - Angular 2:指令订阅服务的 Observables
- scala - 为 scala 代码写一个测试
- vim - 我可以在 Windows 10 的 WINdows 命令行中使用类似 vim 的命令吗?