在matplotlib中的右y轴上添加刻度标签

时间:2013-04-10 14:28:03

标签: python matplotlib

我有以下图表: Matplotlib graph

我想在图表的右侧添加带标签的自定义刻度,以识别虚线水平线。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

ax = gca()
ax.axhline(.5, linestyle='--')
trans = matplotlib.transforms.blended_transform_factory(
    ax.transAxes,
    ax.transData)

ax.annotate('label', xy=(1.01, .5), xycoords=trans, clip_on=False, va='center')
ax.set_xlim([0,2])
plt.draw()

有关混合变换的详细信息,请参阅here。 x坐标是以轴为单位的(所以它总是只是向右一点,而y坐标是数据单位,所以你可以把它准确地放在你想要的位置。放入刻度线没有多大意义在右边,因为你的虚线会掩盖它们。

答案 1 :(得分:0)

如果您想要新的比例,请使用twinx()

fig = plt.figure()
ax = []
ax.append(fig.add_subplot(111))
ax.append(ax[0].twinx())
ax[0].plot(...)
ax[1].set_yticks([...])
ax[1].set_yticklabels([...])
plt.show()

如果您只想要一个标签,请使用text内容,如@tcaswell所写。