Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (55 sloc) 2.62 KB
from pyjamas.chart.HovertextChunk import formatAsHovertext
from pyjamas.chart.GChart import GChart
from pyjamas.chart import AnnotationLocation
from pyjamas.chart import SymbolType
"""* Basic pie chart
* <p>
*
* This chart uses the built-in HTML-element based pie chart
* rendering. As of GChart 2.5, faster drawn, better
* looking, solid-filled pie slices can be produced by
* plugging an external canvas library into GChart. See the
* <tt>setCanvasFactory</tt> method's javadocs for the
* details, and the various pie charts on GChart's live demo
* for complete working examples.
*
"""
class GChartExample07 (GChart):
def __init__(self):
GChart.__init__(self)
pieMarketShare = [0.65,0.20,0.10,0.05]
pieTypes = ["Apple", "Cherry", "Pecan", "Bannana"]
pieColors = ["green", "red", "maroon", "yellow"]
self.setChartSize(300, 200)
self.setChartTitle("<h3>2008 Sales by Pie Flavor" +
"<br>(Puny Pies, Inc.) </h3>")
self.setLegendVisible(False)
self.getXAxis().setAxisVisible(False)
self.getYAxis().setAxisVisible(False)
self.getXAxis().setAxisMin(0)
self.getXAxis().setAxisMax(10)
self.getXAxis().setTickCount(0)
self.getYAxis().setAxisMin(0)
self.getYAxis().setAxisMax(10)
self.getYAxis().setTickCount(0)
# this line orients the center of the first slice (apple) due east
self.setInitialPieSliceOrientation(0.75 - pieMarketShare[0]/2)
for i in range(len(pieMarketShare)):
self.addCurve()
self.getCurve().addPoint(5,5)
self.getCurve().getSymbol().setSymbolType(
SymbolType.PIE_SLICE_OPTIMAL_SHADING)
self.getCurve().getSymbol().setBorderColor("white")
self.getCurve().getSymbol().setBackgroundColor(pieColors[i])
# next two lines define pie diameter in x-axis model units
self.getCurve().getSymbol().setModelWidth(6)
self.getCurve().getSymbol().setHeight(0)
self.getCurve().getSymbol().setFillSpacing(0)
self.getCurve().getSymbol().setFillThickness(3)
self.getCurve().getSymbol().setHovertextTemplate(
formatAsHovertext(pieTypes[i] + ", " +
"%d%%" % round(100*pieMarketShare[i])))
self.getCurve().getSymbol().setPieSliceSize(pieMarketShare[i])
self.getCurve().getPoint().setAnnotationText(pieTypes[i])
self.getCurve().getPoint().setAnnotationLocation(
AnnotationLocation.OUTSIDE_PIE_ARC)
Jump to Line
Something went wrong with that request. Please try again.