Search in sources :

Example 11 with CategoryDataset

use of org.jfree.data.category.CategoryDataset in project processdash by dtuma.

the class AreaChart method createChart.

/** Create a line chart. */
public JFreeChart createChart() {
    JFreeChart chart;
    CategoryDataset catData = data.catDataSource();
    Object stacked = parameters.get("stacked");
    if (stacked != null) {
        chart = ChartFactory.createStackedAreaChart(null, null, null, catData, PlotOrientation.VERTICAL, true, true, false);
        if ("pct".equals(stacked)) {
            ((StackedAreaRenderer) chart.getCategoryPlot().getRenderer()).setRenderAsPercentages(true);
            DecimalFormat fmt = new DecimalFormat();
            fmt.setMultiplier(100);
            ((NumberAxis) chart.getCategoryPlot().getRangeAxis()).setNumberFormatOverride(fmt);
            if (parameters.get("units") == null)
                parameters.put("units", "%");
        }
    } else {
        chart = ChartFactory.createAreaChart(null, null, null, catData, PlotOrientation.VERTICAL, true, true, false);
    }
    setupCategoryChart(chart);
    Object colorScheme = parameters.get("colorScheme");
    if ("consistent".equals(colorScheme))
        configureConsistentColors(chart.getCategoryPlot(), catData);
    else if (parameters.containsKey("c1"))
        configureIndividualColors(chart.getCategoryPlot(), catData);
    return chart;
}
Also used : NumberAxis(org.jfree.chart.axis.NumberAxis) CategoryDataset(org.jfree.data.category.CategoryDataset) DecimalFormat(java.text.DecimalFormat) JFreeChart(org.jfree.chart.JFreeChart) StackedAreaRenderer(org.jfree.chart.renderer.category.StackedAreaRenderer)

Example 12 with CategoryDataset

use of org.jfree.data.category.CategoryDataset in project processdash by dtuma.

the class RadarChart method createChart.

/** Create a radar chart. */
@Override
public JFreeChart createChart() {
    maybeScaleDataAxes();
    CategoryDataset catData = data.catDataSource();
    PieDataset pieData = null;
    if (catData.getRowCount() == 1)
        pieData = DatasetUtilities.createPieDatasetForRow(catData, 0);
    else
        pieData = DatasetUtilities.createPieDatasetForColumn(catData, 0);
    RadarPlot plot = new RadarPlot(pieData);
    JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
    if (parameters.get("skipAxisLabels") != null)
        plot.setShowAxisLabels(false);
    String interiorGap = getParameter("interiorGap");
    if (interiorGap != null)
        try {
            plot.setInteriorGap(Integer.parseInt(interiorGap) / 100.0);
        } catch (NumberFormatException e) {
        }
    String interiorSpacing = getParameter("interiorSpacing");
    if (interiorSpacing != null)
        try {
            plot.setInteriorGap(Integer.parseInt(interiorSpacing) / 200.0);
        } catch (NumberFormatException e) {
        }
    return chart;
}
Also used : PieDataset(org.jfree.data.general.PieDataset) CategoryDataset(org.jfree.data.category.CategoryDataset) JFreeChart(org.jfree.chart.JFreeChart)

Example 13 with CategoryDataset

use of org.jfree.data.category.CategoryDataset in project dhis2-core by dhis2.

the class DefaultChartService method getCategoryDataSet.

private CategoryDataset[] getCategoryDataSet(BaseChart chart) {
    Map<String, Object> valueMap = new HashMap<>();
    if (chart.isAnalyticsType(AnalyticsType.AGGREGATE)) {
        valueMap = analyticsService.getAggregatedDataValueMapping(chart);
    } else if (chart.isAnalyticsType(AnalyticsType.EVENT)) {
        Grid grid = eventAnalyticsService.getAggregatedEventData(chart);
        chart.setDataItemGrid(grid);
        valueMap = GridUtils.getMetaValueMapping(grid, (grid.getWidth() - 1));
    }
    DefaultCategoryDataset regularDataSet = new DefaultCategoryDataset();
    DefaultCategoryDataset regressionDataSet = new DefaultCategoryDataset();
    SimpleRegression regression = new SimpleRegression();
    BaseAnalyticalObject.sortKeys(valueMap);
    List<NameableObject> seriez = new ArrayList<>(chart.series());
    List<NameableObject> categories = new ArrayList<>(chart.category());
    if (chart.hasSortOrder()) {
        categories = getSortedCategories(categories, chart, valueMap);
    }
    for (NameableObject series : seriez) {
        double categoryIndex = 0;
        for (NameableObject category : categories) {
            categoryIndex++;
            String key = getKey(series, category, chart.getAnalyticsType());
            Object object = valueMap.get(key);
            Number value = object != null && object instanceof Number ? (Number) object : null;
            regularDataSet.addValue(value, series.getShortName(), category.getShortName());
            if (chart.isRegression() && value != null && value instanceof Double && !MathUtils.isEqual((Double) value, MathUtils.ZERO)) {
                regression.addData(categoryIndex, (Double) value);
            }
        }
        if (// Period must be category
        chart.isRegression()) {
            categoryIndex = 0;
            for (NameableObject category : chart.category()) {
                final double value = regression.predict(categoryIndex++);
                if (!Double.isNaN(value)) {
                    regressionDataSet.addValue(value, TREND_PREFIX + series.getShortName(), category.getShortName());
                }
            }
        }
    }
    return new CategoryDataset[] { regularDataSet, regressionDataSet };
}
Also used : SimpleRegression(org.apache.commons.math3.stat.regression.SimpleRegression) DefaultCategoryDataset(org.jfree.data.category.DefaultCategoryDataset) CategoryDataset(org.jfree.data.category.CategoryDataset) DefaultCategoryDataset(org.jfree.data.category.DefaultCategoryDataset)

Aggregations

CategoryDataset (org.jfree.data.category.CategoryDataset)13 JFreeChart (org.jfree.chart.JFreeChart)11 DefaultCategoryDataset (org.jfree.data.category.DefaultCategoryDataset)6 NumberAxis (org.jfree.chart.axis.NumberAxis)5 CategoryAxis (org.jfree.chart.axis.CategoryAxis)4 StackedAreaRenderer (org.jfree.chart.renderer.category.StackedAreaRenderer)4 RectangleInsets (org.jfree.ui.RectangleInsets)4 CategoryPlot (org.jfree.chart.plot.CategoryPlot)3 PieDataset (org.jfree.data.general.PieDataset)3 ShiftedCategoryAxis (hudson.util.ShiftedCategoryAxis)2 StackedAreaRenderer2 (hudson.util.StackedAreaRenderer2)2 Timestamp (java.sql.Timestamp)2 MResource (org.compiere.model.MResource)2 MUOM (org.compiere.model.MUOM)2 NumberOnlyBuildLabel (hudson.util.ChartUtil.NumberOnlyBuildLabel)1 DataSetBuilder (hudson.util.DataSetBuilder)1 Graph (hudson.util.Graph)1 DecimalFormat (java.text.DecimalFormat)1 JSONObject (net.sf.json.JSONObject)1 DiscPlot (net.sourceforge.processdash.ui.lib.chart.DiscPlot)1