Matplotlib: несколько осей у, линии сетки применяются к обоим? - PullRequest
4 голосов
/ 07 сентября 2010

У меня есть график Matplotlib с двумя осями y, созданный так:

ax1 = fig.add_subplot(111)
ax1.grid(True, color='gray')
ax1.plot(xdata, ydata1, 'b', linewidth=0.5)
ax2 = ax1.twinx()
ax2.plot(xdata, ydata2, 'g', linewidth=0.5)

Мне нужны линии сетки, но я хочу, чтобы они применялись к обеим осям y, а не только к левой.Масштабы каждой оси будут отличаться.То, что я получаю, это линии сетки, которые соответствуют только значениям на левой оси.

Может ли Matplotlib выяснить это для меня или я должен сделать это сам?

Редактировать: Не думаю, что я был полностью ясен, я хочу, чтобы основные тики по обеим осям y были выровнены, но шкалы и диапазоны потенциально сильно различаются, что затрудняет ручную настройку минут и максимумов для достижения этой цели.Я надеюсь, что Matplotlib сможет сделать этот "хитрый" бит для меня.Спасибо

1 Ответ

3 голосов
/ 07 сентября 2010

РЕДАКТИРОВАТЬ

Рассмотрим этот простой пример:

from pylab import *

# some random values
xdata = arange(0.0, 2.0, 0.01)
ydata1 = sin(2*pi*xdata)
ydata2 = 5*cos(2*pi*xdata) + randn(len(xdata))

# number of ticks on the y-axis
numSteps = 9;

# plot
figure()

subplot(121)
plot(xdata, ydata1, 'b')
yticks( linspace(ylim()[0],ylim()[1],numSteps) )
grid()

subplot(122)
plot(xdata, ydata2, 'g')
yticks( linspace(ylim()[0],ylim()[1],numSteps) )
grid()

show()

alt text

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