私はcsvファイルからデータを読み込み、matplotlibアニメーションを使って "ライブストリーム"をプロットしています。 "matplotlib.dates.date2num"の値ではなく、x軸に時間を表示することを除いて、すべてうまく動作しています。これを行う簡単な方法はありますか?アニメーションプロットを数値としてではなくx軸に表示する方法
import numpy
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import animation
import datetime
from numpy import genfromtxt
cv = numpy.genfromtxt ('file.csv', delimiter=",")
second = cv[:,0]
third = cv[:,2]
FMT = '%Y-%m-%d-%H%M%S.%f'
data = numpy.genfromtxt('file.csv', delimiter=',', skip_header=2,names=['t', 'in', 'x', 'y','z'], dtype=['object', 'int8', 'float', 'float', 'float'])
d = [datetime.datetime.strptime(i.decode('ascii'), FMT) for i in data['t']]
conversion3 = [matplotlib.dates.date2num(j) for j in d]
mytime3 = numpy.array(conversion3)
x = mytime3
y = third
fig, ax = plt.subplots()
line, = ax.plot([], [], 'b-')
ax.margins(0.05)
def init():
line.set_data(x[:2],y[:2])
return line,
def animate(i):
win = 150
imin = min(max(0, i - win), x.size - win)
xdata = x[imin:i]
ydata = y[imin:i]
line.set_data(xdata, ydata)
ax.relim()
ax.autoscale()
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init, interval=25)
plt.show()
csvファイルの形式は次のとおりです。
2016-07-11-095303.810,1,79
2016-07-11-095303.900,1,77
2016-07-11-095303.990,1,59
2016-07-11-095304.080,1,48
2016-07-11-095304.170,1,48
2016-07-11-095304.260,1,77
2016-07-11-095304.350,1,81
2016-07-11-095304.440,1,63
2016-07-11-095304.530,1,54
2016-07-11-095304.620,1,29
あなたは[日付例](https://matplotlib.org/1.5.3/examples/pylab_examples/date_demo1.htmlのように 'DateFormatter'を使用してみました)?実際に日付を数字に変換する必要はありますか?日付を直接プロットしてみませんか?問題の[mcve]を提供することによって、他の人がサンプルデータを再作成する必要がないように、他の人が助けてくれるように助けてください。 – ImportanceOfBeingErnest
DateFormatterを使用しようとしましたが、空白のキャンバスになりました。私は直接日付をプロットしようとします – Sjoseph
私は日付を直接プロットしようとしましたが、再び空白のキャンバスに終わりました。日付が必要な形式がありますか? – Sjoseph