我想在twinx(右侧)坐标轴的刻度标签上使用“西”锚。例如,看下面的图,我想刻度标签的左侧与右侧坐标轴对齐。
我尝试了下面的几件事,但都无济于事。
import matplotlib.pyplot as plt
X = [1,2,3]
fig, ax = plt.subplots()
ax.plot(X)
ax.set_ylim([1,3])
ax.set_yticks(X)
axR = ax.twinx()
axR.set_ylim(ax.get_ylim())
axR.set_yticks(ax.get_yticks())
axR.set_yticklabels(['-1.00', '2.00', '3.00'], ha='right')
# axR.set_yticklabels(['-1.00', '2.00', '3.00'], ha='right', bbox_to_anchor='W')
# axR.set_yticklabels(['-1.00', '2.00', '3.00'], ha='right', bbox=dict(bbox_to_anchor='W'))
# bbox can have args from: https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.FancyBboxPatch.html#matplotlib.patches.FancyBboxPatch
fig.show()
1条答案
按热度按时间ff29svar1#
所以我遇到了同样的问题,偶然发现了这个问题。我尝试了相当多,我基本上决定我将需要找到标签的右侧,当它们在右侧左对齐时,然后从这一点右对齐它们。
我尝试了几种方法,但经验不足,所以并不完美,但似乎可以通过bbox找到坐标。我来回转换,得到一个数组(可能是一个更短的方法,我不知道)。然后我把最大的一个差距,并把它添加到间距。
注意事项:我在子图上执行此操作,因此使用ax2。我还使用
ax2.yaxis.tick_right()
将轴刻度标签移动到右侧更新:我最近收到了一个类似问题的解决方案,左侧左对齐。从这个解决方案,我相信这可以简化为: