2013-04-10 129 views

回答

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坐标就是数据单位,所以你可以把它放在你想要的地方。因为你的虚线会掩盖它们

+0

很好!我不知道你的解决方案非常简单,并且完全符合我的想法 – 2013-04-10 15:14:55

+0

@CharlesBrunet我最近才发现它们,它们很漂亮TY。 – tacaswell 2013-04-10 15:19:18

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写道。

+0

这样做的危险是你的两个y轴可能有完全不同的比例因此你需要小心重新缩放/确保你已经关闭了所有的自动缩放功能,例如 – tacaswell 2013-04-10 14:51:22

+0

我被这个问题的题目所迷惑,它更多的是添加一个标签/注释而不是添加刻度标签 – Robbert 2013-04-10 15:14:49