List of usage examples for org.jfree.data.general DefaultPieDataset getValue
@Override
public Number getValue(Comparable key)
From source file:com.pureinfo.srm.reports.impl.PieChartBuilder.java
private void fillChartInfo(DefaultPieDataset _dataset) { int n = _dataset.getItemCount(); m_ChartInfo = new ChartInfo(); m_ChartInfo.setChartTitle(m_sTitle); NumberFormat format = NumberFormat.getNumberInstance(); String[] labels = new String[n]; for (int i = 0; i < n; i++) { labels[i] = "" + _dataset.getKey(i); labels[i] += " = "; labels[i] += format.format(_dataset.getValue(i)); double totalValue = DatasetUtilities.calculatePieDatasetTotal(_dataset); if (totalValue != 0) { labels[i] += " "; labels[i] += PERCENT_NUMBER_FORMAT.format(_dataset.getValue(i).doubleValue() / totalValue); }/* w ww .j a v a 2s .com*/ } m_ChartInfo.setLabels(labels); m_ChartInfo.setShowBoder(true); m_ChartInfo.setChartSize(ChartInfo.SIZE_WIDE_AND_THIN); m_ChartInfo.setLengedPosition(ChartInfo.LENGEND_POSITION_BUTTOM); }
From source file:com.ikon.servlet.admin.StatsGraphServlet.java
/** * Convert a piechartdata to xml/* w ww . j av a 2 s. com*/ * * @author puspendu.banerjee@gmail.com */ public String repoStatsXML(final String title, final DefaultPieDataset dataset) throws IOException, ServletException { Document document = DocumentHelper.createDocument(); Element root = document.addElement("RepoStats"); root.addElement("Title").addCDATA(title); Element dataSetElement = root.addElement("DataSet"); for (int i = 0; i < dataset.getItemCount(); i++) { Element itemElement = dataSetElement.addElement("Item"); itemElement.addElement("name").addCDATA(dataset.getKey(i).toString()); itemElement.addAttribute("percent", dataset.getValue(i).toString()); dataSetElement.add(itemElement); } return document.asXML(); }
From source file:uk.ac.lkl.cram.ui.report.Report.java
private void addLearningTypes() { MainDocumentPart mdp = wordMLPackage.getMainDocumentPart(); mdp.addStyledParagraphOfText("Heading1", "Learning Types"); LearningTypeChartMaker maker = new LearningTypeChartMaker(module); JFreeChart chart = maker.getChartPanel().getChart(); DefaultPieDataset dataset = (DefaultPieDataset) maker.getDataset(); Tbl table = factory.createTbl();/* ww w. j av a2s .c om*/ double total = 0f; for (Object key : dataset.getKeys()) { total += (Double) dataset.getValue((Comparable) key); } boolean first = true; for (Object key : dataset.getKeys()) { Tr tableRow = factory.createTr(); Tc tableCell = factory.createTc(); TcPr tcpr = factory.createTcPr(); tableCell.setTcPr(tcpr); VMerge vMerge = factory.createTcPrInnerVMerge(); tcpr.setVMerge(vMerge); if (first) { vMerge.setVal("restart"); /* Specify the height and width of the Pie Chart */ int width = (int) (480f * 0.9f); /* Width of the chart */ int height = (int) (360f * 0.9f); /* Height of the chart */ tableCell.getContent().add(createChart(chart, width, height)); first = false; } else { tableCell.getContent().add(factory.createP()); } tableRow.getContent().add(tableCell); double percent = (Double) dataset.getValue((Comparable) key) / total; addSimpleTableCell(tableRow, key.toString()); addTableCell(tableRow, PERCENT_FORMATTER.format(percent), JcEnumeration.RIGHT, false); table.getContent().add(tableRow); } addBorders(table); mdp.addObject(table); }
From source file:org.sakaiproject.sitestats.impl.chart.ChartServiceImpl.java
private AbstractDataset getPieDataset(Report report) { List<Stat> reportData = report.getReportData(); // fill dataset DefaultPieDataset dataSet = new DefaultPieDataset(); String dataSource = report.getReportDefinition().getReportParams().getHowChartSource(); //int total = 0; double total = 0; for (Stat s : reportData) { Comparable key = getStatValue(s, dataSource); if (key != null) { try { Number existingValue = dataSet.getValue(key); dataSet.setValue(key, getTotalValue(existingValue, s, report)); total += getTotalValue(s, report).doubleValue(); } catch (UnknownKeyException e) { dataSet.setValue(key, getTotalValue(s, report)); total += getTotalValue(s, report).doubleValue(); }/*from w w w . j a v a 2 s .co m*/ } } // sort dataSet.sortByValues(SortOrder.DESCENDING); // fill in final key values in dataset // show only top values (aggregate remaining in 'others') int maxDisplayedItems = 10; int currItem = 1; Number othersValues = Integer.valueOf(0); List<Comparable> keys = dataSet.getKeys(); for (Comparable key : keys) { Number existingValue = dataSet.getValue(key); if (currItem < maxDisplayedItems) { // re-compute values double percentage = (double) existingValue.doubleValue() * 100 / total; double valuePercentage = Util.round(percentage, (percentage > 0.1) ? 1 : 2); // replace key with updated label StringBuilder keyStr = new StringBuilder(key.toString()); keyStr.append(' '); keyStr.append(valuePercentage); keyStr.append("% ("); if ((double) existingValue.intValue() == existingValue.doubleValue()) keyStr.append(existingValue.intValue()); else keyStr.append(existingValue.doubleValue()); keyStr.append(")"); dataSet.remove(key); dataSet.setValue(keyStr.toString(), existingValue); } else { othersValues = Integer.valueOf(othersValues.intValue() + existingValue.intValue()); dataSet.remove(key); } currItem++; } // compute "Others" value if (othersValues.intValue() > 0) { double percentage = (double) othersValues.doubleValue() * 100 / total; double valuePercentage = Util.round(percentage, (percentage > 0.1) ? 1 : 2); // replace key with updated label StringBuilder keyStr = new StringBuilder(msgs.getString("pie_chart_others")); keyStr.append(' '); keyStr.append(valuePercentage); keyStr.append("% ("); if ((double) othersValues.intValue() == othersValues.doubleValue()) keyStr.append(othersValues.intValue()); else keyStr.append(othersValues.doubleValue()); keyStr.append(")"); dataSet.setValue(keyStr.toString(), othersValues); } return dataSet; }