我试图了解如何使用" set_ydata"方法,我在matplotlib网页上找到了很多例子,但我发现只有代码中有" set_ydata"被淹死了#34;在大而难以理解的代码中。
我想要一个简短易懂的代码,帮助我理解" set_ydata"作品。这是一个简短的代码,提供
下的情节import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-3, 3, 0.01)
j = 1
y = np.sin( np.pi*x*j ) / ( np.pi*x*j )
fig = plt.figure()
ax = fig.add_subplot(111)
line, = ax.plot(x, y)
plt.show()
现在,使用以下代码,我删除" ax"上绘制的线条。 subplot,我用" set_ydata"修改情节,最后我想再画一行,但我找不到最后一步的内容
line.remove()
j = 2
y = np.sin( np.pi*x*j ) / ( np.pi*x*j )
line.set_ydata(y)
not" plt.draw()"不是" plt.show()"画任何东西。你可以建议我画一条新线吗?
答案 0 :(得分:4)
如果删除将数据设置为的行,则不会发现任何内容。
正如函数set_data
建议的名称,它设置Line2D
对象的数据点。 set_ydata
是一个特殊情况,它只设置ydata。
在更新绘图时,set_data
的使用大多有意义,如您的示例所示(只是不删除该行)。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-3, 3, 0.01)
j = 1
y = np.sin( np.pi*x*j ) / ( np.pi*x*j )
fig = plt.figure()
ax = fig.add_subplot(111)
#plot a line along points x,y
line, = ax.plot(x, y)
#update data
j = 2
y2 = np.sin( np.pi*x*j ) / ( np.pi*x*j )
#update the line with the new data
line.set_ydata(y2)
plt.show()
很明显,直接绘制ax.plot(x, y2)
可能要容易得多。因此,set_data
通常仅用于有意义的情况,并且您将其称为“大而难以理解的代码”。