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)
これは動作しますが、何も描画しません。しかし、プロット自体がリサイズされます。
可能な重複で見つけることができる(http://stackoverflow.com/questions/10944621/dynamically-updating-plot-in-matplotlib) –
FYI matplotlibの更新可能ですが、プレゼンテーション品質のグラフ用であり、実際にはリアルタイム更新表示用ではありません。あなたはvispy http://vispy.org/ –
@JasonSを見たいかもしれません。通常、問題の解決策を見ることができないことをコメント作成者がカバーしているため、コメントはちょっと吸います。そうではありません。リンクありがとう: –