http://qiita.com/7of9/items/345c854e8e8b2edaa83e
の続き。
今度は時系列グラフにする。
try1 > 固定時刻
plotlyTimeGraph.py
import plotly.plotly as py
py.plot({
"data":[{
"x":["2016-01-03 12:30:45","2016-01-03 12:30:55","2016-01-03 12:31:05"],
"y":[4,2,5]
}],
"layout":{
"title":"graph as a function of time"
}
},filename='timegraph160103'
,fileopt='extend'
,privacy='public')
"x"の指定に年月日、時分秒の文字列を入れるようにする。
try2 > 現在時刻 3秒ごとにプロット
以下の実装により3秒ごとにプロットできるようになった。
160103-randomPlot.py
import plotly.plotly as py
import time
import datetime
while True:
today = datetime.datetime.today()
xdt = today.strftime("%Y-%m-%d %H:%M:%S")
yval = 3.1415
py.plot({
"data":[{
"x":[xdt],
"y":[yval]
}],
"layout":{
"title":"graph as a function of time"
}
},filename='timegraph160103'
,fileopt='extend'
,privacy='public')
print "added at " + xdt
time.sleep(3)
毎回アクセスするのも良くないので、リストに保持してまとめてプロットするように変更するのがいい。
try3 > リストでまとめてプロット
参考
http://qiita.com/7of9/items/586f62fa46dc3409d954
のコメント。
リストで5個単位でプロットできるようになった。
これでplotlyへのアクセスが軽減できる。
160103-listPlot.py
import plotly.plotly as py
import time
import datetime
xlist = [0] * 0
ylist = [0] * 0
while True:
today = datetime.datetime.today()
xdt = today.strftime("%Y-%m-%d %H:%M:%S")
yval = 3.1415
xlist.append(xdt)
ylist.append(yval)
if (len(xlist) < 5):
time.sleep(3)
continue
py.plot({
"data":[{
"x":xlist,
"y":ylist
}],
"layout":{
"title":"graph as a function of time"
}
},filename='timegraph160103b'
,fileopt='extend'
,privacy='public')
print "added at " + str(xlist[1:])
del xlist[1:]
del ylist[1:]
time.sleep(3)
pythonのリストがまだよくわかっていない。
0個としての初期化はxlist = [0] * 0
でいいのだろうか?
次は関数化。