gpt4 book ai didi

python - 实时更新连续函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:36 24 4
gpt4 key购买 nike

我不知道如何使用 Matplotlib 绘制连续函数。我知道如何绘制散点图,但我想要一个连续的图。

这是我的代码:

import matplotlib.pyplot as plt
from matplotlib.pyplot import autoscale
import matplotlib.animation as animation

import numpy


class MyPlot():
def __init__(self):
self.index = 0
self.setup()

def setup(self):
plt.ion()
self.fig, self.ax = plt.subplots()
self.line = self.ax.plot([],[])
autoscale()
plt.show()
def anim(self, i):
self.line.set_ydata(i) # update the data
return self.line,
def add(self, val):
print self.index, val
self.ax.plot(self.index, val)
animation.FuncAnimation(self.fig, self.anim, repeat=False)
plt.pause(0.05)
#if(self.index >= ntests):
self.index+=1

if __name__== "__main__":
import time
from random import random
p = MyPlot()

for i in range(100):
p.add(random())
time.sleep(0.5)

这有效,但不绘制任何东西。不过,情节会自行调整大小。

最佳答案

您一次只用一个点绘制一条线(该点不存在),因此什么也没有显示。如果将 self.ax.plot 替换为 self.ax.scatter,它会正确绘制。

如果你真的想要线条,你可以只跟踪最后一个索引和值,并每次绘制一条连接最后一个索引和值与当前索引和值的线。

将这两行添加到add()

    self.ax.plot([self.index-1, self.index], [self.lastval, val])
self.lastval = val

以及在 setup() 中将 self.lastval 初始化为 numpy.nan 的行

关于python - 实时更新连续函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38616865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com