Нарисуйте несколько данных на каждом графике в виде ряда вспомогательных участков, используя цикл for - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь построить скорость ветра и направление ветра для нескольких уровней на одной большой серии вспомогательных участков, используя plt.subplots().

. У меня есть:

fig, axes=plt.subplots(n=levels,figsize=(20,30),sharex=True)
for i in range(levels):
     axes[i].plot(time,wind_speed[:,i])

Как добавить вторая ось Y на каждом участке, чтобы я мог построить скорость ветра и направление ветра на одном графике для каждого уровня? Я не понимаю, как добавить вторую ось, вторая ось не может быть перечислена таким образом.

Каждый график будет иметь ту же ось X, но скорость ветра на линейном графике (левая ось Y) и направление ветра в виде точек (правая ось Y). twinx будет работать, но Python не нравится twinx при использовании итерации в a для l oop.

Я пытался axes[0][i]=axes[i].twinx Я также пытался сделать еще один вложенный for loop с for j..., чтобы сделать axes[j]=axes[i].twinx. Ничего из этого не сработало.

1 Ответ

1 голос
/ 21 апреля 2020

Без информации и с ограниченным пониманием вашей проблемы, но я думаю, что это может сделать:

входной аргумент: sharex = True позволяет вам сохранить одну и ту же ось на подплощадках.

Насколько я понимаю, на одном графике вы хотите левую и правую оси Y:


fig, axes=plt.subplots(n=levels,figsize=(20,30),sharex=True)
for i in range(levels):
     axes[i].plot(time, wind_speed[:, i])
     ax2 = axes[i].twinx()
     ax2.plot(time, wind_direction[:, i])


...