Spent some time working with the Plotly Python API. Able to read my data logger files and upload to a plot with ease. Will need to comment code better I know...just started playing with it and wanted to share. Upload all environmental data and if the additional "Annotation" field exist add that to the plot as well.
import plotly.plotly as py
from plotly.graph_objs import *
myname = 'plotlyid'
mykey = "plotlykey"
py.sign_in(myname,mykey)
x1 =[]
y1 =[]
y2 =[]
y3 =[]
MyAnnotation = []
f = open("LOGGER26.CSV",'r')
#f = open("smallset.csv",'r')
for lines in f:
data = lines.split(',')
x1.append(data[0])
y1.append(data[1])
y2.append(data[2])
y3.append(data[3].strip())
if len(data)==5:
print data[4]
Annotation = {'x':data[0],'y':data[1],'text':data[4] + data[0],'xref':'x','yref':'y','showarrow':True,'arrowhead':7,'bgcolor':'red'}
MyAnnotation.append(Annotation)
# (2) Make dictionary linking x and y coordinate lists to 'x' and 'y' keys
# (mandatory in plotly v.1.0.8 and up)
layout = Layout(
title="MyEnvi",
annotations=MyAnnotation,
legend=Legend(
x=100,
y=1
),
xaxis=XAxis(
domain=[0, 0.8],
autorange=True,
showgrid=False,
zeroline=False,
showline=True,
autotick=True,
ticks='',
showticklabels=True
),
yaxis=YAxis(
title="Light",
autorange=True,
showgrid=False,
zeroline=False,
showline=True,
autotick=True,
ticks='',
showticklabels=True
),
yaxis2=YAxis(
title='Barometric',
showgrid=False,
titlefont=Font(
color='#ff7f0e'
),
tickfont=Font(
color='#ff7f0e'
),
anchor='x',
overlaying='y',
side='right'
),
yaxis3=YAxis(
showgrid=False,
title='Temp',
titlefont=Font(
color='#087804'
),
tickfont=Font(
color='#087804'
),
anchor='free',
overlaying='y',
side='right',
position = .9
),
)
trace1 = dict(x=x1,y=y1, name='Light')
trace2 = dict(x=x1,y=y2, name= 'Barometric',yaxis='y2')
trace3 = dict(x=x1,y=y3, name='Temp',yaxis='y3')
# (3) Make list of 1 trace, to be sent to Plotly
# (mandatory in 1.0.8 and up)
data = [trace1,trace2,trace3]
fig = Figure(data=data,layout=layout)
plot_url = py.plot(fig, filename='MyEnvi')
f.close()
2014-6-10 19:19:48,508,996.00,24.94
2014-6-10 19:19:49,508,995.95,24.94
2014-6-10 19:19:50,508,995.99,24.94
2014-6-10 19:19:51,508,995.95,24.92
2014-6-10 19:19:53,507,995.93,24.92,Migraine Severe
2014-6-10 19:19:54,507,995.99,24.94
2014-6-10 19:19:55,507,995.96,24.94
2014-6-10 19:19:56,507,996.00,24.92
2014-6-10 19:19:57,507,995.98,24.94
2014-6-10 19:19:58,507,995.97,24.92
2014-6-10 19:19:59,507,995.92,24.92
2014-6-10 19:20:0,507,995.92,24.92
Next steps: Create a way to add the annotation to the data file on the Arduino.