Matplotlib 双刻度鼠标悬停
我在用matplotlib画一些曲线的时候,遇到了一点问题。默认情况下,当我用鼠标悬停时,似乎是第二个y轴(ax2)被选中了,但我想用第一个y轴(ax1)。请问有没有简单的方法可以解决这个问题呢?
这是我目前用来画曲线的代码。
最好的祝愿,安德斯·奥尔梅
delta=np.median(np.diff(measurementvalues.measvalues))
myscale=10
myrange=(measurementvalues.lowerlimit - delta*myscale, measurementvalues.upperlimit + delta*myscale)
figure = plt.figure()
ax1 = figure.add_subplot(111)
(n, bins, patches) = ax1.hist(measurementvalues.measvalues, 10, range=myrange, normed=0, facecolor='green', alpha=0.75)
ax2 = ax1.twinx()
mean = np.average(measurementvalues.measvalues)
sigma = np.std(measurementvalues.measvalues)
y = mlab.normpdf(bins, mean, sigma)
ax2.plot(bins, y, 'r-', linewidth=1)
ax1.set_xlabel('Measvlues')
ax2.set_ylabel('Probability')
ax1.set_title(r'$\mathrm{Histogram\ of\ measvalues:}\ \mu=$'+str(mean)+r'$,\ \sigma=$'+str(sigma)+r'$$')
plt.grid(True)
plt.show()
1 个回答
2
在调用twinx之后,添加以下内容:
ax3 = ax1.figure.add_axes(ax1.get_position(True), sharex=ax1, sharey=ax1,
frameon=False)
ax3.xaxis.set_visible(False)
ax3.yaxis.set_visible(False)
你还需要把plt.grid(True)改成ax1.grid(True)