# gdchart examples # # - All chart styles except PIE can accept multiple data sets (but see next # note) # # - Missing data values: # - For pie charts, missing data values can be indicated by passing a second # data set; 0 or None in the second data set indicates that the # corresponding value in the first data set should be considered missing # (i.e., it won't be drawn on the chart). # - For other charts, None in a data set indicates a missing value. import gdchart import cStringIO # optional from chart import Chart # TestChart: a simple class for testing gdchart functionality. For your own # work, you will probably want a more specialized class, e.g., to maintain # more of its own state and reduce the number of parameters to draw(). class TestChart(Chart): def __init__(self): Chart.__init__(self) def draw(self, style, size, file, labels, *data): Chart.draw(self) args = (style, size, file, labels) + data apply(gdchart.chart, args) size = (250, 250) data1 = (0.5, 0.09, 0.3, 0.75, 0.0, 0.90) data2 = (1.9, 1.3, 1.2, 0.75, 0.1, 2.0) data3 = (62, 71, 71, 52, 55, 48) data4 = (42, 62, 52, 37, 52, 50) cities = ('Chicago', 'New York', 'L.A.', 'Atlanta', 'Paris, MD\n(USA)', 'London') days = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday') c = TestChart() # Simple chart. # Other styles: GDC_AREA, GDC_BAR, GDC_LINE, GDC_3DAREA, GDC_3DLINE. c.option(format=gdchart.GDC_PNG) c.option(set_color=(0xff8080, 0x8080ff)) c.option(bg_color=0xffffff, plot_color=0x0000cd, line_color=0x000000) c.option(title='Simple Chart', xtitle='X Axis', ytitle='Y Axis') c.draw(gdchart.GDC_3DBAR, size, 'test1.png', cities, data1, data2) # Floating bar chart. # Other style: GDC_FLOATINGBAR. al=(24, 24, 22, 21, 18, 16) ah=(49, 47, 45, 44, 43, 44) bl=(10, 12, 15, 16, 18, 18) bh=(48, 47, 48, 49, 51, 53) c.option(set_color=(0x0040a0, 0x00a040)) c.option(title='Floating Bar Chart', xtitle='', ytitle='') c.draw(gdchart.GDC_3DFLOATINGBAR, size, 'test2.png', days, (al, ah), (bl, bh)) # Pie chart # Other style: GDC_2DPIE. c.option(bg_color=0x335599, bg_transparent=1) c.option(pie_color=(0xff8080, 0x80ff80, 0x8080ff, 0xffff80, 0xff80ff, 0x80ffff)) c.option(edge_color=0x0, line_color=0xffffff) c.option(label_line=1) c.option(explode=(0,0,0,0,0,15)) c.option(title='Pie Test') c.draw(gdchart.GDC_3DPIE, size, 'test3.png', cities, data2) # Combo chart # Other styles: GDC_COMBO_LINE_AREA, GDC_COMBO_LINE_BAR, GDC_COMBO_LINE_LINE, # GDC_3DCOMBO_LINE_AREA, GDC_3DCOMBO_LINE_LINE. c.option(title='Combo Chart') c.option(yaxis=0, yaxis2=0) c.option(bg_color=0x0, bg_transparent=0) c.option(set_color=(0xffffff,), vol_color=0x408080) c.draw(gdchart.GDC_3DCOMBO_LINE_BAR, size, 'test4.png', days, data3, data4) # Hi-lo-close chart # Other style: GDC_HILOCLOSE. dates = ('Jan 1', 'Jan 8', 'Jan 15', 'Jan 22', 'Jan 29', 'Feb 5') h1=(28,30,32,33,36,35) l1=(24,27,28,30,31,31) c1=(27,29,30,31,33,32) h2=map(lambda x:0.7*x - 2, h1); h2.reverse() l2=map(lambda x:0.5*x - 2, l1); l2.reverse() c2=map(lambda x:0.6*x - 2, c1); c2.reverse() c.option(title='Hi-Lo-Close Chart') c.option(yaxis=1, ylabel_fmt='$%.0f ') c.option(set_color=(0x80ff80, 0xff8080, 0x8080ff, 0x808080, 0x606060, 0xa0a0a0)) c.option(hlc_style=gdchart.GDC_HLC_I_CAP + gdchart.GDC_HLC_CONNECTING) c.option(format=gdchart.GDC_GIF) # cStringIO example out = cStringIO.StringIO() c.draw(gdchart.GDC_3DHILOCLOSE, size, out, dates, (h1,l1,c1), (h2, l2, c2)) f = open('test5.gif', 'wb') f.write(out.getvalue()) f.close() # Combo hi-lo-close chart # Other styles: GDC_COMBO_HLC_AREA, GDC_COMBO_HLC_BAR, GDC_3DCOMBO_HLC_BAR. c.option(title='Combo Hi-Lo-Close Chart') c.option(yaxis2=1) c.option(set_color=(0xa0ffa0, 0xa0ffa0, 0xffffff), vol_color=0xa0a0a0) c.option(ytitle='Price', ytitle_color=0xc0c0c0) c.option(ytitle2='Volume (K)', ytitle2_color=0xc0c0c0) c.option(format=gdchart.GDC_JPEG) f = open('test6.jpg', 'wb') c.draw(gdchart.GDC_3DCOMBO_HLC_AREA, size, f, dates, (h1,l1,c1), data3) f.close() # Examples of other options h3 = (17.8, 17.1, 17.3, None, 17.2, 17.1, 17.3, 17.3, 17.3, 17.1, 17.5, 17.4) c3 = (17.0, 16.8, 16.9, None, 16.9, 16.8, 17.2, 16.8, 17.0, 16.9, 16.4, 16.1) l3 = (16.8, 16.8, 16.7, None, 16.5, 16.0, 16.1, 16.8, 16.5, 16.9, 16.2, 16.0) v3 = (150.0, 100.0, 340.0, None, 999.0, 390.0, 420.0, 150.0, 100.0, 340.0, 1590.0, 700.0) t3 = ('May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan', 'Feb', 'Mar', 'Apr') c.option(hlc_style = gdchart.GDC_HLC_I_CAP | gdchart.GDC_HLC_CLOSE_CONNECTED) c.option(hlc_cap_width=45) c.option(bar_width=75) c.option(title='Widget Corp.', ytitle='Price ($)', ytitle2='Volume (K)') c.option(vol_color=0x4040ff) c.option(plot_color=0xffffff) c.option(grid=0) c.option(ylabel_density=50, ylabel_fmt='') c.option(annotation=(3, 0x00ff00, 'Did Not\nTrade')) c.option(scatter=( (3.0, 16.80, 60, 0xff0000, gdchart.GDC_SCATTER_TRIANGLE_DOWN), (3.0, 16.25, 60, 0xff0000, gdchart.GDC_SCATTER_TRIANGLE_UP))) c.option(bg_image='w.gif') c.option(format=gdchart.GDC_PNG) c.draw(gdchart.GDC_COMBO_HLC_BAR, size, 'test7.png', t3, (h3,l3,c3), v3)