Matplotlib с двойной шкалой мыши - PullRequest
4 голосов
/ 24 января 2010

Я пытаюсь построить некоторые кривые с помощью matplotlib, используя компонент gui по умолчанию, и у меня возникают проблемы с выбором, какую из двух осей 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()

1 Ответ

2 голосов
/ 26 августа 2011

Добавьте следующее после вызова 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...