使用for循环在一系列子图上的每个图上绘制多个数据

时间:2020-04-21 13:12:34

标签: python for-loop matplotlib axis subplot

我正在尝试使用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可以工作,但是在for循环中使用迭代时,Python不喜欢twinx

我尝试了axes[0][i]=axes[i].twinx 我还尝试使用for loop做另一个嵌套的for j...来做axes[j]=axes[i].twinx。这些都不起作用。

1 个答案:

答案 0 :(得分:1)

没有信息并且对您的问题的了解有限,但是我想这可能会做到:

输入参数: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])