【发布时间】:2021-08-22 04:19:21
【问题描述】:
我的任务是使用 matplotlib 实时绘制 numpy 数组。请注意,我不想使用 animation 函数来执行此操作。
import numpy as np
import time
from matplotlib.lines import Line2D
import matplotlib
class Plot:
def __init__(self,f,axis,data):
self.fig = f
self.axis = axis
self.data = data
def plotting(self,i):
xs = [self.data[i,0],self.data[i+1,0]]
ys = [self.data[i,1],self.data[i+1,1]]
line, = self.axis.plot(xs,ys,'g-')
self.fig.canvas.draw()
data = np.random.rand(10,2) #numpy array
f = plt.figure()
axis = f.add_axes([0,0,0.9,0.9])
plotData = Plot(f,axis,data)
for i in range(len(data)-1):
plotData.plotting(i)
time.sleep(1)
plt.show()
但每次我运行这段代码时,它都会返回一个空图。如何纠正?
【问题讨论】:
-
使用
line.set_data(xs, ys)和fig.canvas.draw()在用line, = self.axis.plot(xs, ys, 'g-')初始化后更新图形
标签: python python-3.x numpy matplotlib