def generatePlotPanel(self, plotTitle, listData, showLegend, showTooltip): """ 1) Create a PieDataset 2) Create a PieChart (or Create a PiePlot and put it in a JFreeChart) 3) Put the PieChart in a ChartPanel """ # Get a dictionary of value occurence in the list {value1:count, value2:count...} dataDico = Counter(listData) #print dataDico # value: counts OK # Create a Pie dataset from the dicoData pieDataset = DefaultPieDataset() for key, value in dataDico.items(): #print key, value pieDataset.setValue(key, value) # Create an instance of JFreeChart urls = False chart = ChartFactory.createPieChart(plotTitle, pieDataset, showLegend, showTooltip, urls) # Alternative way #piePlot = PiePlot(pieDataset) #chart = JFreeChart(plotTitle, piePlot) return ChartPanel(chart)
def pie(data, name='', trid=False): """ Creates a pie chart. *data* is a ``dict`` whose keys are category names and values are numeric values. Setting *trid* to ``True`` results in a 3D char. """ dataset = DefaultPieDataset(); for k,v in data.iteritems(): dataset.setValue(k, v) if trid: chart = ChartFactory.createPieChart3D(name, dataset, True, True, False) else: chart = ChartFactory.createPieChart(name, dataset, True, True, False) return Chart(chart)