import plotly.plotly as py #
import plotly.tools as tls #
stream_ids = tls.get_credentials_file()['stream_ids']
stream_ids
[u'p17pxe0idb', u'ilzladc8ro', u'o72o1p08y4', u'81dygs4lct']
from plotly.graph_objs import Data, Layout, Figure, Stream
from plotly.graph_objs import Heatmap, Contour
from plotly.graph_objs import XAxis, YAxis, ColorBar, Margin
from plotly.graph_objs import Font, Contours
import numpy as np
import pandas as pd
import urllib2 #
import time
import datetime
#
url_csv = 'http://donnees.ville.montreal.qc.ca/storage/f/\
2014-01-20T20%3A48%3A50.296Z/2013.csv'
fichier_csv = urllib2.urlopen(url_csv) #
df = pd.read_csv(fichier_csv) #
df.head()
Date | Unnamed: 1 | Berri1 | CSC | Mais1 | Mais2 | Parc | PierDup | Rachel1 | Totem_Laurier | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 01/01/2013 | 00:00 | 0 | 0 | 1 | 0 | 6 | 0 | 1 | 0 |
1 | 02/01/2013 | 00:00 | 69 | 0 | 13 | 0 | 18 | 0 | 2 | 0 |
2 | 03/01/2013 | 00:00 | 69 | 2 | 21 | 6 | 22 | 1 | 0 | 0 |
3 | 04/01/2013 | 00:00 | 80 | 0 | 22 | 4 | 16 | 0 | 125 | 0 |
4 | 05/01/2013 | 00:00 | 52 | 4 | 19 | 3 | 12 | 0 | 97 | 0 |
5 rows × 10 columns
# Sites' full names
sites = ['Berri/<br>de Maisonneuve',
'Côte-Ste-Catherine<br>(parc Beaubien)',
'de Maisonneuve/<br>Berri',
'de Maisonneuve/<br>Peel',
'du Parc/<br>Duluth',
'Pierre-Dupuy<br>(Habitat 67)',
'Rachel/<br>Marquette',
'Laurier<br>(métro)']
dates = df['Date'].tolist()
dates_in_words = [datetime.datetime.strptime(i,'%d/%m/%Y').strftime('%A, %B %d %Y')
for i in dates]
dates_in_words
['Tuesday, January 01 2013', 'Wednesday, January 02 2013', 'Thursday, January 03 2013', 'Friday, January 04 2013', 'Saturday, January 05 2013', 'Sunday, January 06 2013', 'Monday, January 07 2013', 'Tuesday, January 08 2013', 'Wednesday, January 09 2013', 'Thursday, January 10 2013', 'Friday, January 11 2013', 'Saturday, January 12 2013', 'Sunday, January 13 2013', 'Monday, January 14 2013', 'Tuesday, January 15 2013', 'Wednesday, January 16 2013', 'Thursday, January 17 2013', 'Friday, January 18 2013', 'Saturday, January 19 2013', 'Sunday, January 20 2013', 'Monday, January 21 2013', 'Tuesday, January 22 2013', 'Wednesday, January 23 2013', 'Thursday, January 24 2013', 'Friday, January 25 2013', 'Saturday, January 26 2013', 'Sunday, January 27 2013', 'Monday, January 28 2013', 'Tuesday, January 29 2013', 'Wednesday, January 30 2013', 'Thursday, January 31 2013', 'Friday, February 01 2013', 'Saturday, February 02 2013', 'Sunday, February 03 2013', 'Monday, February 04 2013', 'Tuesday, February 05 2013', 'Wednesday, February 06 2013', 'Thursday, February 07 2013', 'Friday, February 08 2013', 'Saturday, February 09 2013', 'Sunday, February 10 2013', 'Monday, February 11 2013', 'Tuesday, February 12 2013', 'Wednesday, February 13 2013', 'Thursday, February 14 2013', 'Friday, February 15 2013', 'Saturday, February 16 2013', 'Sunday, February 17 2013', 'Monday, February 18 2013', 'Tuesday, February 19 2013', 'Wednesday, February 20 2013', 'Thursday, February 21 2013', 'Friday, February 22 2013', 'Saturday, February 23 2013', 'Sunday, February 24 2013', 'Monday, February 25 2013', 'Tuesday, February 26 2013', 'Wednesday, February 27 2013', 'Thursday, February 28 2013', 'Friday, March 01 2013', 'Saturday, March 02 2013', 'Sunday, March 03 2013', 'Monday, March 04 2013', 'Tuesday, March 05 2013', 'Wednesday, March 06 2013', 'Thursday, March 07 2013', 'Friday, March 08 2013', 'Saturday, March 09 2013', 'Sunday, March 10 2013', 'Monday, March 11 2013', 'Tuesday, March 12 2013', 'Wednesday, March 13 2013', 'Thursday, March 14 2013', 'Friday, March 15 2013', 'Saturday, March 16 2013', 'Sunday, March 17 2013', 'Monday, March 18 2013', 'Tuesday, March 19 2013', 'Wednesday, March 20 2013', 'Thursday, March 21 2013', 'Friday, March 22 2013', 'Saturday, March 23 2013', 'Sunday, March 24 2013', 'Monday, March 25 2013', 'Tuesday, March 26 2013', 'Wednesday, March 27 2013', 'Thursday, March 28 2013', 'Friday, March 29 2013', 'Saturday, March 30 2013', 'Sunday, March 31 2013', 'Monday, April 01 2013', 'Tuesday, April 02 2013', 'Wednesday, April 03 2013', 'Thursday, April 04 2013', 'Friday, April 05 2013', 'Saturday, April 06 2013', 'Sunday, April 07 2013', 'Monday, April 08 2013', 'Tuesday, April 09 2013', 'Wednesday, April 10 2013', 'Thursday, April 11 2013', 'Friday, April 12 2013', 'Saturday, April 13 2013', 'Sunday, April 14 2013', 'Monday, April 15 2013', 'Tuesday, April 16 2013', 'Wednesday, April 17 2013', 'Thursday, April 18 2013', 'Friday, April 19 2013', 'Saturday, April 20 2013', 'Sunday, April 21 2013', 'Monday, April 22 2013', 'Tuesday, April 23 2013', 'Wednesday, April 24 2013', 'Thursday, April 25 2013', 'Friday, April 26 2013', 'Saturday, April 27 2013', 'Sunday, April 28 2013', 'Monday, April 29 2013', 'Tuesday, April 30 2013', 'Wednesday, May 01 2013', 'Thursday, May 02 2013', 'Friday, May 03 2013', 'Saturday, May 04 2013', 'Sunday, May 05 2013', 'Monday, May 06 2013', 'Tuesday, May 07 2013', 'Wednesday, May 08 2013', 'Thursday, May 09 2013', 'Friday, May 10 2013', 'Saturday, May 11 2013', 'Sunday, May 12 2013', 'Monday, May 13 2013', 'Tuesday, May 14 2013', 'Wednesday, May 15 2013', 'Thursday, May 16 2013', 'Friday, May 17 2013', 'Saturday, May 18 2013', 'Sunday, May 19 2013', 'Monday, May 20 2013', 'Tuesday, May 21 2013', 'Wednesday, May 22 2013', 'Thursday, May 23 2013', 'Friday, May 24 2013', 'Saturday, May 25 2013', 'Sunday, May 26 2013', 'Monday, May 27 2013', 'Tuesday, May 28 2013', 'Wednesday, May 29 2013', 'Thursday, May 30 2013', 'Friday, May 31 2013', 'Saturday, June 01 2013', 'Sunday, June 02 2013', 'Monday, June 03 2013', 'Tuesday, June 04 2013', 'Wednesday, June 05 2013', 'Thursday, June 06 2013', 'Friday, June 07 2013', 'Saturday, June 08 2013', 'Sunday, June 09 2013', 'Monday, June 10 2013', 'Tuesday, June 11 2013', 'Wednesday, June 12 2013', 'Thursday, June 13 2013', 'Friday, June 14 2013', 'Saturday, June 15 2013', 'Sunday, June 16 2013', 'Monday, June 17 2013', 'Tuesday, June 18 2013', 'Wednesday, June 19 2013', 'Thursday, June 20 2013', 'Friday, June 21 2013', 'Saturday, June 22 2013', 'Sunday, June 23 2013', 'Monday, June 24 2013', 'Tuesday, June 25 2013', 'Wednesday, June 26 2013', 'Thursday, June 27 2013', 'Friday, June 28 2013', 'Saturday, June 29 2013', 'Sunday, June 30 2013', 'Monday, July 01 2013', 'Tuesday, July 02 2013', 'Wednesday, July 03 2013', 'Thursday, July 04 2013', 'Friday, July 05 2013', 'Saturday, July 06 2013', 'Sunday, July 07 2013', 'Monday, July 08 2013', 'Tuesday, July 09 2013', 'Wednesday, July 10 2013', 'Thursday, July 11 2013', 'Friday, July 12 2013', 'Saturday, July 13 2013', 'Sunday, July 14 2013', 'Monday, July 15 2013', 'Tuesday, July 16 2013', 'Wednesday, July 17 2013', 'Thursday, July 18 2013', 'Friday, July 19 2013', 'Saturday, July 20 2013', 'Sunday, July 21 2013', 'Monday, July 22 2013', 'Tuesday, July 23 2013', 'Wednesday, July 24 2013', 'Thursday, July 25 2013', 'Friday, July 26 2013', 'Saturday, July 27 2013', 'Sunday, July 28 2013', 'Monday, July 29 2013', 'Tuesday, July 30 2013', 'Wednesday, July 31 2013', 'Thursday, August 01 2013', 'Friday, August 02 2013', 'Saturday, August 03 2013', 'Sunday, August 04 2013', 'Monday, August 05 2013', 'Tuesday, August 06 2013', 'Wednesday, August 07 2013', 'Thursday, August 08 2013', 'Friday, August 09 2013', 'Saturday, August 10 2013', 'Sunday, August 11 2013', 'Monday, August 12 2013', 'Tuesday, August 13 2013', 'Wednesday, August 14 2013', 'Thursday, August 15 2013', 'Friday, August 16 2013', 'Saturday, August 17 2013', 'Sunday, August 18 2013', 'Monday, August 19 2013', 'Tuesday, August 20 2013', 'Wednesday, August 21 2013', 'Thursday, August 22 2013', 'Friday, August 23 2013', 'Saturday, August 24 2013', 'Sunday, August 25 2013', 'Monday, August 26 2013', 'Tuesday, August 27 2013', 'Wednesday, August 28 2013', 'Thursday, August 29 2013', 'Friday, August 30 2013', 'Saturday, August 31 2013', 'Sunday, September 01 2013', 'Monday, September 02 2013', 'Tuesday, September 03 2013', 'Wednesday, September 04 2013', 'Thursday, September 05 2013', 'Friday, September 06 2013', 'Saturday, September 07 2013', 'Sunday, September 08 2013', 'Monday, September 09 2013', 'Tuesday, September 10 2013', 'Wednesday, September 11 2013', 'Thursday, September 12 2013', 'Friday, September 13 2013', 'Saturday, September 14 2013', 'Sunday, September 15 2013', 'Monday, September 16 2013', 'Tuesday, September 17 2013', 'Wednesday, September 18 2013']
# Get values of every row of columns 2 and up
Z = df.ix[:,2:].values
# 153 sample days (rows) at 8 sites (columns)
Z.shape
(261, 8)
Z.max()
8555
# Make a first stream id object
stream_id = stream_ids[0] # get a stream token from list
stream = Stream(token=stream_id, # N.B. link stream id to 'token' key
maxpoints=30) # N.B. keep maximum of 30 pts on plot
z_init = np.zeros((1,len(sites)))
# Scatter object for sin(x) line
data = Data([
Heatmap(
z=z_init,
x=sites,
y=[0],
zauto=False,
zmin=0,
zmax=9000,
stream=stream
)
])
layout = Layout(
title='Heatmap Stream test',
yaxis=YAxis(
ticks='',
showticklabels=False
),
margin= Margin(
l=10,
b=100,
t=50
),
autosize=False,
width=600,
height=280)
figure = Figure(data=data, layout=layout)
py.iplot(figure, filename='stream-heatmap-test')
s = py.Stream(stream_id)
s.open()
time.sleep(2)
for i,z in enumerate(Z):
s_data = dict(z=[z], type='heatmap') # must include type='heatmap'
s_layout = dict(title=dates_in_words[i])
#s.write(s_data, layout=s_layout, validate=False)
s.write(s_data, layout=s_layout)
time.sleep(0.5)
s.close()
from IPython.display import display, HTML
import urllib2
url = 'https://raw.githubusercontent.com/plotly/python-user-guide/master/custom.css'
display(HTML(urllib2.urlopen(url).read()))