{ "metadata": { "name": "", "signature": "sha256:cea8b13d615407a9949cbe74efae48cd3ce1f47d0a4abcc9fc0fa54eee1cb590" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import plotly.plotly as py #\n", "import plotly.tools as tls # \n", "\n", "stream_ids = tls.get_credentials_file()['stream_ids']\n", "stream_ids" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "[u'p17pxe0idb', u'ilzladc8ro', u'o72o1p08y4', u'81dygs4lct']" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from plotly.graph_objs import Data, Layout, Figure, Stream\n", "from plotly.graph_objs import Heatmap, Contour\n", "from plotly.graph_objs import XAxis, YAxis, ColorBar, Margin\n", "from plotly.graph_objs import Font, Contours" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import pandas as pd\n", "import urllib2 #\n", "import time\n", "import datetime" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "#\n", "url_csv = 'http://donnees.ville.montreal.qc.ca/storage/f/\\\n", "2014-01-20T20%3A48%3A50.296Z/2013.csv'\n", "\n", "fichier_csv = urllib2.urlopen(url_csv) #\n", "df = pd.read_csv(fichier_csv) #" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "df.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DateUnnamed: 1Berri1CSCMais1Mais2ParcPierDupRachel1Totem_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
\n", "

5 rows \u00d7 10 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ " Date Unnamed: 1 Berri1 CSC Mais1 Mais2 Parc PierDup Rachel1 \\\n", "0 01/01/2013 00:00 0 0 1 0 6 0 1 \n", "1 02/01/2013 00:00 69 0 13 0 18 0 2 \n", "2 03/01/2013 00:00 69 2 21 6 22 1 0 \n", "3 04/01/2013 00:00 80 0 22 4 16 0 125 \n", "4 05/01/2013 00:00 52 4 19 3 12 0 97 \n", "\n", " Totem_Laurier \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "\n", "[5 rows x 10 columns]" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# Sites' full names\n", "sites = ['Berri/
de Maisonneuve', \n", " 'C\u00f4te-Ste-Catherine
(parc Beaubien)',\n", " 'de Maisonneuve/
Berri',\n", " 'de Maisonneuve/
Peel',\n", " 'du Parc/
Duluth',\n", " 'Pierre-Dupuy
(Habitat 67)', \n", " 'Rachel/
Marquette', \n", " 'Laurier
(m\u00e9tro)']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "dates = df['Date'].tolist()\n", "\n", "dates_in_words = [datetime.datetime.strptime(i,'%d/%m/%Y').strftime('%A, %B %d %Y') \n", " for i in dates]\n", "\n", "dates_in_words" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "['Tuesday, January 01 2013',\n", " 'Wednesday, January 02 2013',\n", " 'Thursday, January 03 2013',\n", " 'Friday, January 04 2013',\n", " 'Saturday, January 05 2013',\n", " 'Sunday, January 06 2013',\n", " 'Monday, January 07 2013',\n", " 'Tuesday, January 08 2013',\n", " 'Wednesday, January 09 2013',\n", " 'Thursday, January 10 2013',\n", " 'Friday, January 11 2013',\n", " 'Saturday, January 12 2013',\n", " 'Sunday, January 13 2013',\n", " 'Monday, January 14 2013',\n", " 'Tuesday, January 15 2013',\n", " 'Wednesday, January 16 2013',\n", " 'Thursday, January 17 2013',\n", " 'Friday, January 18 2013',\n", " 'Saturday, January 19 2013',\n", " 'Sunday, January 20 2013',\n", " 'Monday, January 21 2013',\n", " 'Tuesday, January 22 2013',\n", " 'Wednesday, January 23 2013',\n", " 'Thursday, January 24 2013',\n", " 'Friday, January 25 2013',\n", " 'Saturday, January 26 2013',\n", " 'Sunday, January 27 2013',\n", " 'Monday, January 28 2013',\n", " 'Tuesday, January 29 2013',\n", " 'Wednesday, January 30 2013',\n", " 'Thursday, January 31 2013',\n", " 'Friday, February 01 2013',\n", " 'Saturday, February 02 2013',\n", " 'Sunday, February 03 2013',\n", " 'Monday, February 04 2013',\n", " 'Tuesday, February 05 2013',\n", " 'Wednesday, February 06 2013',\n", " 'Thursday, February 07 2013',\n", " 'Friday, February 08 2013',\n", " 'Saturday, February 09 2013',\n", " 'Sunday, February 10 2013',\n", " 'Monday, February 11 2013',\n", " 'Tuesday, February 12 2013',\n", " 'Wednesday, February 13 2013',\n", " 'Thursday, February 14 2013',\n", " 'Friday, February 15 2013',\n", " 'Saturday, February 16 2013',\n", " 'Sunday, February 17 2013',\n", " 'Monday, February 18 2013',\n", " 'Tuesday, February 19 2013',\n", " 'Wednesday, February 20 2013',\n", " 'Thursday, February 21 2013',\n", " 'Friday, February 22 2013',\n", " 'Saturday, February 23 2013',\n", " 'Sunday, February 24 2013',\n", " 'Monday, February 25 2013',\n", " 'Tuesday, February 26 2013',\n", " 'Wednesday, February 27 2013',\n", " 'Thursday, February 28 2013',\n", " 'Friday, March 01 2013',\n", " 'Saturday, March 02 2013',\n", " 'Sunday, March 03 2013',\n", " 'Monday, March 04 2013',\n", " 'Tuesday, March 05 2013',\n", " 'Wednesday, March 06 2013',\n", " 'Thursday, March 07 2013',\n", " 'Friday, March 08 2013',\n", " 'Saturday, March 09 2013',\n", " 'Sunday, March 10 2013',\n", " 'Monday, March 11 2013',\n", " 'Tuesday, March 12 2013',\n", " 'Wednesday, March 13 2013',\n", " 'Thursday, March 14 2013',\n", " 'Friday, March 15 2013',\n", " 'Saturday, March 16 2013',\n", " 'Sunday, March 17 2013',\n", " 'Monday, March 18 2013',\n", " 'Tuesday, March 19 2013',\n", " 'Wednesday, March 20 2013',\n", " 'Thursday, March 21 2013',\n", " 'Friday, March 22 2013',\n", " 'Saturday, March 23 2013',\n", " 'Sunday, March 24 2013',\n", " 'Monday, March 25 2013',\n", " 'Tuesday, March 26 2013',\n", " 'Wednesday, March 27 2013',\n", " 'Thursday, March 28 2013',\n", " 'Friday, March 29 2013',\n", " 'Saturday, March 30 2013',\n", " 'Sunday, March 31 2013',\n", " 'Monday, April 01 2013',\n", " 'Tuesday, April 02 2013',\n", " 'Wednesday, April 03 2013',\n", " 'Thursday, April 04 2013',\n", " 'Friday, April 05 2013',\n", " 'Saturday, April 06 2013',\n", " 'Sunday, April 07 2013',\n", " 'Monday, April 08 2013',\n", " 'Tuesday, April 09 2013',\n", " 'Wednesday, April 10 2013',\n", " 'Thursday, April 11 2013',\n", " 'Friday, April 12 2013',\n", " 'Saturday, April 13 2013',\n", " 'Sunday, April 14 2013',\n", " 'Monday, April 15 2013',\n", " 'Tuesday, April 16 2013',\n", " 'Wednesday, April 17 2013',\n", " 'Thursday, April 18 2013',\n", " 'Friday, April 19 2013',\n", " 'Saturday, April 20 2013',\n", " 'Sunday, April 21 2013',\n", " 'Monday, April 22 2013',\n", " 'Tuesday, April 23 2013',\n", " 'Wednesday, April 24 2013',\n", " 'Thursday, April 25 2013',\n", " 'Friday, April 26 2013',\n", " 'Saturday, April 27 2013',\n", " 'Sunday, April 28 2013',\n", " 'Monday, April 29 2013',\n", " 'Tuesday, April 30 2013',\n", " 'Wednesday, May 01 2013',\n", " 'Thursday, May 02 2013',\n", " 'Friday, May 03 2013',\n", " 'Saturday, May 04 2013',\n", " 'Sunday, May 05 2013',\n", " 'Monday, May 06 2013',\n", " 'Tuesday, May 07 2013',\n", " 'Wednesday, May 08 2013',\n", " 'Thursday, May 09 2013',\n", " 'Friday, May 10 2013',\n", " 'Saturday, May 11 2013',\n", " 'Sunday, May 12 2013',\n", " 'Monday, May 13 2013',\n", " 'Tuesday, May 14 2013',\n", " 'Wednesday, May 15 2013',\n", " 'Thursday, May 16 2013',\n", " 'Friday, May 17 2013',\n", " 'Saturday, May 18 2013',\n", " 'Sunday, May 19 2013',\n", " 'Monday, May 20 2013',\n", " 'Tuesday, May 21 2013',\n", " 'Wednesday, May 22 2013',\n", " 'Thursday, May 23 2013',\n", " 'Friday, May 24 2013',\n", " 'Saturday, May 25 2013',\n", " 'Sunday, May 26 2013',\n", " 'Monday, May 27 2013',\n", " 'Tuesday, May 28 2013',\n", " 'Wednesday, May 29 2013',\n", " 'Thursday, May 30 2013',\n", " 'Friday, May 31 2013',\n", " 'Saturday, June 01 2013',\n", " 'Sunday, June 02 2013',\n", " 'Monday, June 03 2013',\n", " 'Tuesday, June 04 2013',\n", " 'Wednesday, June 05 2013',\n", " 'Thursday, June 06 2013',\n", " 'Friday, June 07 2013',\n", " 'Saturday, June 08 2013',\n", " 'Sunday, June 09 2013',\n", " 'Monday, June 10 2013',\n", " 'Tuesday, June 11 2013',\n", " 'Wednesday, June 12 2013',\n", " 'Thursday, June 13 2013',\n", " 'Friday, June 14 2013',\n", " 'Saturday, June 15 2013',\n", " 'Sunday, June 16 2013',\n", " 'Monday, June 17 2013',\n", " 'Tuesday, June 18 2013',\n", " 'Wednesday, June 19 2013',\n", " 'Thursday, June 20 2013',\n", " 'Friday, June 21 2013',\n", " 'Saturday, June 22 2013',\n", " 'Sunday, June 23 2013',\n", " 'Monday, June 24 2013',\n", " 'Tuesday, June 25 2013',\n", " 'Wednesday, June 26 2013',\n", " 'Thursday, June 27 2013',\n", " 'Friday, June 28 2013',\n", " 'Saturday, June 29 2013',\n", " 'Sunday, June 30 2013',\n", " 'Monday, July 01 2013',\n", " 'Tuesday, July 02 2013',\n", " 'Wednesday, July 03 2013',\n", " 'Thursday, July 04 2013',\n", " 'Friday, July 05 2013',\n", " 'Saturday, July 06 2013',\n", " 'Sunday, July 07 2013',\n", " 'Monday, July 08 2013',\n", " 'Tuesday, July 09 2013',\n", " 'Wednesday, July 10 2013',\n", " 'Thursday, July 11 2013',\n", " 'Friday, July 12 2013',\n", " 'Saturday, July 13 2013',\n", " 'Sunday, July 14 2013',\n", " 'Monday, July 15 2013',\n", " 'Tuesday, July 16 2013',\n", " 'Wednesday, July 17 2013',\n", " 'Thursday, July 18 2013',\n", " 'Friday, July 19 2013',\n", " 'Saturday, July 20 2013',\n", " 'Sunday, July 21 2013',\n", " 'Monday, July 22 2013',\n", " 'Tuesday, July 23 2013',\n", " 'Wednesday, July 24 2013',\n", " 'Thursday, July 25 2013',\n", " 'Friday, July 26 2013',\n", " 'Saturday, July 27 2013',\n", " 'Sunday, July 28 2013',\n", " 'Monday, July 29 2013',\n", " 'Tuesday, July 30 2013',\n", " 'Wednesday, July 31 2013',\n", " 'Thursday, August 01 2013',\n", " 'Friday, August 02 2013',\n", " 'Saturday, August 03 2013',\n", " 'Sunday, August 04 2013',\n", " 'Monday, August 05 2013',\n", " 'Tuesday, August 06 2013',\n", " 'Wednesday, August 07 2013',\n", " 'Thursday, August 08 2013',\n", " 'Friday, August 09 2013',\n", " 'Saturday, August 10 2013',\n", " 'Sunday, August 11 2013',\n", " 'Monday, August 12 2013',\n", " 'Tuesday, August 13 2013',\n", " 'Wednesday, August 14 2013',\n", " 'Thursday, August 15 2013',\n", " 'Friday, August 16 2013',\n", " 'Saturday, August 17 2013',\n", " 'Sunday, August 18 2013',\n", " 'Monday, August 19 2013',\n", " 'Tuesday, August 20 2013',\n", " 'Wednesday, August 21 2013',\n", " 'Thursday, August 22 2013',\n", " 'Friday, August 23 2013',\n", " 'Saturday, August 24 2013',\n", " 'Sunday, August 25 2013',\n", " 'Monday, August 26 2013',\n", " 'Tuesday, August 27 2013',\n", " 'Wednesday, August 28 2013',\n", " 'Thursday, August 29 2013',\n", " 'Friday, August 30 2013',\n", " 'Saturday, August 31 2013',\n", " 'Sunday, September 01 2013',\n", " 'Monday, September 02 2013',\n", " 'Tuesday, September 03 2013',\n", " 'Wednesday, September 04 2013',\n", " 'Thursday, September 05 2013',\n", " 'Friday, September 06 2013',\n", " 'Saturday, September 07 2013',\n", " 'Sunday, September 08 2013',\n", " 'Monday, September 09 2013',\n", " 'Tuesday, September 10 2013',\n", " 'Wednesday, September 11 2013',\n", " 'Thursday, September 12 2013',\n", " 'Friday, September 13 2013',\n", " 'Saturday, September 14 2013',\n", " 'Sunday, September 15 2013',\n", " 'Monday, September 16 2013',\n", " 'Tuesday, September 17 2013',\n", " 'Wednesday, September 18 2013']" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# Get values of every row of columns 2 and up\n", "Z = df.ix[:,2:].values\n", "\n", "# 153 sample days (rows) at 8 sites (columns)\n", "Z.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "(261, 8)" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "Z.max()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "8555" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "# Make a first stream id object \n", "stream_id = stream_ids[0] # get a stream token from list\n", "stream = Stream(token=stream_id, # N.B. link stream id to 'token' key\n", " maxpoints=30) # N.B. keep maximum of 30 pts on plot" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "z_init = np.zeros((1,len(sites)))\n", "\n", "# Scatter object for sin(x) line\n", "data = Data([\n", " Heatmap(\n", " z=z_init,\n", " x=sites,\n", " y=[0],\n", " zauto=False,\n", " zmin=0,\n", " zmax=9000,\n", " stream=stream\n", " )\n", "])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "layout = Layout(\n", " title='Heatmap Stream test',\n", " yaxis=YAxis(\n", " ticks='',\n", " showticklabels=False\n", " ),\n", " margin= Margin(\n", " l=10,\n", " b=100,\n", " t=50\n", " ),\n", " autosize=False,\n", " width=600,\n", " height=280)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "figure = Figure(data=data, layout=layout)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "py.iplot(figure, filename='stream-heatmap-test')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "s = py.Stream(stream_id)\n", "s.open()\n", "\n", "time.sleep(2)\n", "\n", "for i,z in enumerate(Z):\n", " \n", " s_data = dict(z=[z], type='heatmap') # must include type='heatmap'\n", " s_layout = dict(title=dates_in_words[i])\n", " \n", " #s.write(s_data, layout=s_layout, validate=False) \n", " s.write(s_data, layout=s_layout) \n", " \n", " time.sleep(0.5)\n", "\n", "s.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import display, HTML\n", "import urllib2 \n", "url = 'https://raw.githubusercontent.com/plotly/python-user-guide/master/custom.css'\n", "display(HTML(urllib2.urlopen(url).read()))" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 2 } ], "metadata": {} } ] }