You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
(1) |
2
(12) |
3
(12) |
4
(19) |
5
(7) |
6
(6) |
7
(2) |
8
(2) |
9
(11) |
10
(15) |
11
(27) |
12
(27) |
13
(18) |
14
(3) |
15
(3) |
16
(25) |
17
(9) |
18
(3) |
19
(4) |
20
(2) |
21
(4) |
22
(9) |
23
(28) |
24
(18) |
25
(16) |
26
(9) |
27
(4) |
28
(13) |
29
(15) |
30
(33) |
|
|
|
|
|
Hi I was asked off list how I created the little sparklines using Matplotlib. There are two ways I create these: The live graphs on the demo page (http://your.gridspy.co.nz/powertech/) are created by a great little jquery app (so yeah, not matplotlib): http://omnipotent.net/jquery.sparkline/ To get the data to the browser in order to render the sparkline, you will need some sort of mechanism similar to Ajax (or at least a form of it) called Comet. There is a great tutorial on using orbited for this here http://cometdaily.com/2008/10/10/scalable-real-time-web-architecture-part-2-a-live-graph-with-orbited-morbidq-and-jsio/ If any of you need more help doing that, I am happy to provide some source code examples. If instead, you want to create static line graphs using matplotlib such as those on this page: http://your.gridspy.co.nz/powertech/history/04Nov2009.htm http://your.gridspy.co.nz/powertech/graph/tiny/3-3-04Nov2009.png?c=2 (an example) To render static sparklines I use the following matplot lib code: def render_simple_line(sensors, resolution = 'hour', span = 1, start=None, end=None, fig=None, column=0): """Builds a figure that shows the given sensors at the given resolution and span in the given time period. """ if fig is None: fig=Figure() fig.set_facecolor('white') fig.set_edgecolor('white') axes = fig.add_axes([0.00,0.00,1.0,1.0], axisbg='w', frame_on=False) axes.set_xticks([]) axes.set_yticks([]) axes.set_axis_off() if start is None: start = datetime.datetime.now() if end is None: end = start + datetime.timedelta(days=1) first_date = start.strftime('%Y-%m-%d') last_date = end.strftime('%Y-%m-%d') desc = [("mean", pk) for pk in sensors] np_table = data_table_matrix(desc, resolution, first_date, last_date, span ) #note that np_table[0] is datetime objects and [1] is data if np_table.size == 0: return None #replace nulls with 0 np_table[1:][np_table[1:] == np.array([None])] = 0 #replace -ve values np_table[1:][np_table[1:] < np.array([0])] = 0 axes.xaxis.set_major_formatter(DateFormatter('%H')) fig.autofmt_xdate() base = np.zeros(np_table.shape[1]) color = color_list[column % len(color_list)][1] axes.fill_between(np_table[0], base, np_table[column + 1], facecolor = color) return fig I pass fig in so it is easy to pass a figure from the ipython console, since ipython makes special figures that are interactive. -Tom PS: Dan - I replied to your email directly but it bounced.
Hi I was asked off list how I created the little sparklines using Matplotlib. There are two ways I create these: The live graphs on the demo page (http://your.gridspy.co.nz/powertech/) are created by a great little jquery app (so yeah, not matplotlib): http://omnipotent.net/jquery.sparkline/ To get the data to the browser in order to render the sparkline, you will need some sort of mechanism similar to Ajax (or at least a form of it) called Comet. There is a great tutorial on using orbited for this here http://cometdaily.com/2008/10/10/scalable-real-time-web-architecture-part-2-a-live-graph-with-orbited-morbidq-and-jsio/ If any of you need more help doing that, I am happy to provide some source code examples. If instead, you want to create static line graphs using matplotlib such as those on this page: http://your.gridspy.co.nz/powertech/history/04Nov2009.htm http://your.gridspy.co.nz/powertech/graph/tiny/3-3-04Nov2009.png?c=2 (an example) To render static sparklines I use the following matplot lib code: def render_simple_line(sensors, resolution = 'hour', span = 1, start=None, end=None, fig=None, column=0): """Builds a figure that shows the given sensors at the given resolution and span in the given time period. """ if fig is None: fig=Figure() fig.set_facecolor('white') fig.set_edgecolor('white') axes = fig.add_axes([0.00,0.00,1.0,1.0], axisbg='w', frame_on=False) axes.set_xticks([]) axes.set_yticks([]) axes.set_axis_off() if start is None: start = datetime.datetime.now() if end is None: end = start + datetime.timedelta(days=1) first_date = start.strftime('%Y-%m-%d') last_date = end.strftime('%Y-%m-%d') desc = [("mean", pk) for pk in sensors] np_table = data_table_matrix(desc, resolution, first_date, last_date, span ) #note that np_table[0] is datetime objects and [1] is data if np_table.size == 0: return None #replace nulls with 0 np_table[1:][np_table[1:] == np.array([None])] = 0 #replace -ve values np_table[1:][np_table[1:] < np.array([0])] = 0 axes.xaxis.set_major_formatter(DateFormatter('%H')) fig.autofmt_xdate() base = np.zeros(np_table.shape[1]) color = color_list[column % len(color_list)][1] axes.fill_between(np_table[0], base, np_table[column + 1], facecolor = color) return fig I pass fig in so it is easy to pass a figure from the ipython console, since ipython makes special figures that are interactive. -Tom PS: Dan - I replied to your email directly but it bounced.