Python 带有双刻度鼠标的Matplotlib

Python 带有双刻度鼠标的Matplotlib,python,matplotlib,Python,Matplotlib,我尝试使用默认gui组件使用matplotlib绘制一些曲线,但在选择鼠标悬停功能应选择的两个y轴中的哪一个时遇到了一些问题。默认情况似乎是选择了ax2,但我想改用ax1。这有可能用简单的方法解决吗 这是我目前用来绘制曲线的代码 向安德斯·奥尔姆致以最良好的问候 delta=np.median(np.diff(measurementvalues.measvalues)) myscale=10 myrange=(measurementvalues.lowerlimit - delta*mysc

我尝试使用默认gui组件使用matplotlib绘制一些曲线,但在选择鼠标悬停功能应选择的两个y轴中的哪一个时遇到了一些问题。默认情况似乎是选择了ax2,但我想改用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()

在调用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)

您能澄清这个问题吗?您是否试图使用FigureCanvas.mpl_connect()与图形交互?张贴的代码仅显示图形的生成方式;你能发布描述你是如何与图形交互的代码吗?他说的是交互图右下角的坐标标签。没有涉及回调,只是默认的绘图。这应该被接受为答案,它可以工作。为什么需要更改网格?@dashesy我建议将
plt.grid
更改为
ax1.grid
,以便明确设置
ax1
的网格。也许OP实际上希望网格位于ax2上,在这种情况下,不需要更改网格。