Python 循环内的matplotlib twinx

Python 循环内的matplotlib twinx,python,matplotlib,Python,Matplotlib,我有一个循环,在特定条件下(例如发生3次),我想用twinx绘制两个数据集,所以最后我在左y轴上绘制了3个图,在右y轴上绘制了3个图。当我使用通常的twinx时,循环对right-y取不正确的值。如何修改此示例代码以使其正确?多谢各位 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,10,100) A=5 fig,ax=plt.subplots() for i in range(0,10): A=i*

我有一个循环,在特定条件下(例如发生3次),我想用twinx绘制两个数据集,所以最后我在左y轴上绘制了3个图,在右y轴上绘制了3个图。当我使用通常的twinx时,循环对right-y取不正确的值。如何修改此示例代码以使其正确?多谢各位

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,10,100)
A=5

fig,ax=plt.subplots()

for i in range(0,10):
  A=i**2
  if(i%3==0):
    ax.plot(x,A*np.sin(x),'-ro')
    ax2=ax.twinx()
    ax2.plot(x,A*x,'-bp')
plt.show()
这是输出。

您需要将“ax2”定义移到循环之外(见下文)。然而,这就形成了七个情节,四个在左边,三个在右边。你需要更新你的“如果”条件

[![import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,10,100)
A=5

fig,ax=plt.subplots()
ax2=ax.twinx()

for i in range(0,10):
  A=i**2
  if(i%3==0):
    ax.plot(x,A*np.sin(x),'-ro')
    ax2.plot(x,A*x,'-bp')
plt.show()][1]][1]

我的处境与此完全相同,我想添加图例。你能为每个情节添加图例并显示图例吗?@JoonhoPark我想你想要的答案已经包括在内: