matplotlib twinx在循环内

时间:2016-05-25 17:52:45

标签: python matplotlib

我有一个循环,对于某个条件(例如发生3次),我想用twinx绘制两个数据集,所以例如最后我在左边有3个图,右边有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()

这是输出。 enter image description here

1 个答案:

答案 0 :(得分:2)

你需要移动你的" ax2"循环外的定义(见下文)。然而,这会产生七个图,左边四个,右边三个。你需要更新你的" if"条件。

[![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]

New figure, is this right?