Example usage for org.jfree.data KeyToGroupMap KeyToGroupMap

List of usage examples for org.jfree.data KeyToGroupMap KeyToGroupMap

Introduction

In this page you can find the example usage for org.jfree.data KeyToGroupMap KeyToGroupMap.

Prototype

public KeyToGroupMap(Comparable defaultGroup) 

Source Link

Document

Creates a new map with the specified default group.

Usage

From source file:org.jfree.chart.demo.StackedBarChartDemo5.java

private static JFreeChart createChart(CategoryDataset categorydataset) {
    JFreeChart jfreechart = ChartFactory.createStackedBarChart("Stacked Bar Chart Demo 5", "Category", "Value",
            categorydataset, PlotOrientation.VERTICAL, true, true, false);
    GroupedStackedBarRenderer groupedstackedbarrenderer = new GroupedStackedBarRenderer();
    KeyToGroupMap keytogroupmap = new KeyToGroupMap("G1");
    keytogroupmap.mapKeyToGroup("S1", "G1");
    keytogroupmap.mapKeyToGroup("S2", "G1");
    keytogroupmap.mapKeyToGroup("S3", "G2");
    keytogroupmap.mapKeyToGroup("S4", "G3");
    groupedstackedbarrenderer.setSeriesToGroupMap(keytogroupmap);
    groupedstackedbarrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    groupedstackedbarrenderer.setBaseItemLabelsVisible(true);
    groupedstackedbarrenderer.setPositiveItemLabelPositionFallback(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER));
    groupedstackedbarrenderer.setItemMargin(0.10000000000000001D);
    SubCategoryAxis subcategoryaxis = new SubCategoryAxis("Category / Group");
    subcategoryaxis.setCategoryMargin(0.050000000000000003D);
    subcategoryaxis.addSubCategory("G1");
    subcategoryaxis.addSubCategory("G2");
    subcategoryaxis.addSubCategory("G3");
    CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
    categoryplot.setDomainAxis(subcategoryaxis);
    categoryplot.setRenderer(groupedstackedbarrenderer);
    return jfreechart;
}

From source file:CPU.StackedBarChartExample1.java

/**
 * Create chart// www.j a  va2  s .  c o  m
 * @param dataset
 * @return
 */
private JFreeChart createChart(final CategoryDataset dataset) {

    final JFreeChart stackedChart = ChartFactory.createStackedBarChart("Stacked Bar Chart", "Category", "Value",
            dataset, PlotOrientation.VERTICAL, true, true, false);

    //create group 
    GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();
    KeyToGroupMap map = new KeyToGroupMap("G1");
    map.mapKeyToGroup("Toyota (US)", "G1");
    map.mapKeyToGroup("Toyota (Europe)", "G1");
    map.mapKeyToGroup("Toyota (Asia)", "G1");

    map.mapKeyToGroup("Ford (US)", "G2");
    map.mapKeyToGroup("Ford (Europe)", "G2");
    map.mapKeyToGroup("Ford (Asia)", "G2");

    map.mapKeyToGroup("BMW (US)", "G3");
    map.mapKeyToGroup("BMW (Europe)", "G3");
    map.mapKeyToGroup("BMW (Asia)", "G3");
    renderer.setSeriesToGroupMap(map);
    //margin between bar.
    renderer.setItemMargin(0.03);
    //end

    SubCategoryAxis dom_axis = new SubCategoryAxis("Car Production / Month");
    //Margin between group
    dom_axis.setCategoryMargin(0.06);
    //end

    dom_axis.addSubCategory("Toyota");
    dom_axis.addSubCategory("Ford");
    dom_axis.addSubCategory("BMW");

    CategoryPlot plot = (CategoryPlot) stackedChart.getPlot();
    plot.setDomainAxis(dom_axis);
    plot.setRenderer(renderer);

    return stackedChart;
}

From source file:org.jfree.data.KeyToGroupMapTest.java

/**
 * Tests the mapKeyToGroup() method./*from   w  ww. j  a va 2  s.c  om*/
 */
@Test
public void testMapKeyToGroup() {
    KeyToGroupMap m1 = new KeyToGroupMap("G1");

    // map a key to the default group
    m1.mapKeyToGroup("K1", "G1");
    assertEquals("G1", m1.getGroup("K1"));

    // map a key to a new group
    m1.mapKeyToGroup("K2", "G2");
    assertEquals("G2", m1.getGroup("K2"));

    // clear a mapping
    m1.mapKeyToGroup("K2", null);
    assertEquals("G1", m1.getGroup("K2")); // after clearing, reverts to
                                           // default group

    // check handling of null key
    boolean pass = false;
    try {
        m1.mapKeyToGroup(null, "G1");
    } catch (IllegalArgumentException e) {
        pass = true;
    }
    assertTrue(pass);
}

From source file:org.jfree.chart.demo.DualAxisDemo6.java

private static JFreeChart createChart(CategoryDataset categorydataset, CategoryDataset categorydataset1) {
    CategoryAxis categoryaxis = new CategoryAxis("Category");
    NumberAxis numberaxis = new NumberAxis("Value");
    GroupedStackedBarRenderer groupedstackedbarrenderer = new GroupedStackedBarRenderer();
    KeyToGroupMap keytogroupmap = new KeyToGroupMap("G1");
    keytogroupmap.mapKeyToGroup("Series 1A", "G1");
    keytogroupmap.mapKeyToGroup("Series 1B", "G1");
    keytogroupmap.mapKeyToGroup("NOTHING", "G2");
    groupedstackedbarrenderer.setSeriesToGroupMap(keytogroupmap);
    CategoryPlot categoryplot = new CategoryPlot(categorydataset, categoryaxis, numberaxis,
            groupedstackedbarrenderer) {

        private static final long serialVersionUID = 1L;

        public LegendItemCollection getLegendItems() {
            LegendItemCollection legenditemcollection = new LegendItemCollection();
            legenditemcollection.addAll(getRenderer().getLegendItems());
            CategoryDataset categorydataset2 = getDataset(1);
            if (categorydataset2 != null) {
                CategoryItemRenderer categoryitemrenderer = getRenderer(1);
                if (categoryitemrenderer != null) {
                    org.jfree.chart.LegendItem legenditem = categoryitemrenderer.getLegendItem(1, 1);
                    legenditemcollection.add(legenditem);
                }/*from  w  w  w. j  a v  a  2  s  . c om*/
            }
            return legenditemcollection;
        }

    };
    JFreeChart jfreechart = new JFreeChart("Dual Axis Bar Chart", categoryplot);
    categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    categoryplot.setDataset(1, categorydataset1);
    categoryplot.mapDatasetToRangeAxis(1, 1);
    NumberAxis numberaxis1 = new NumberAxis("Secondary");
    categoryplot.setRangeAxis(1, numberaxis1);
    categoryplot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
    BarRenderer barrenderer = new BarRenderer();
    categoryplot.setRenderer(1, barrenderer);
    ChartUtilities.applyCurrentTheme(jfreechart);
    return jfreechart;
}

From source file:org.neo4j.bench.chart.ChartData.java

private DomainKey domainKey(String group, String shard) {
    final DomainKey key = new DomainKey(group, shard);
    if (groups.add(group)) {
        if (groupmap == null) {
            groupmap = new KeyToGroupMap(group);
        }//from  w w w  .ja va  2 s . c o  m
        domainAxis.addSubCategory(group);
    }
    groupmap.mapKeyToGroup(key, group);
    return key;
}

From source file:com.seagate.kinetic.monitor.view.DefaultKineticOverviewView.java

private JFreeChart createChart(CategoryDataset categorydataset) {
    JFreeChart jfreechart = ChartFactory.createStackedBarChart("", "", "Total " + unitName, categorydataset,
            PlotOrientation.HORIZONTAL, true, true, false);
    keytogroupmap = new KeyToGroupMap("G1");
    keytogroupmap.mapKeyToGroup("Get", "G1");
    keytogroupmap.mapKeyToGroup("Put", "G1");
    keytogroupmap.mapKeyToGroup("Delete", "G1");
    groupedstackedbarrenderer.setSeriesToGroupMap(keytogroupmap);
    groupedstackedbarrenderer.setItemMargin(0.10000000000000001D);
    groupedstackedbarrenderer.setDrawBarOutline(false);

    GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, new Color(34, 34, 255), 0.0F, 0.0F,
            new Color(136, 136, 255));
    groupedstackedbarrenderer.setSeriesPaint(0, gradientpaint);
    groupedstackedbarrenderer.setSeriesPaint(4, gradientpaint);
    groupedstackedbarrenderer.setSeriesPaint(8, gradientpaint);
    GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, new Color(34, 255, 34), 0.0F, 0.0F,
            new Color(136, 255, 136));
    groupedstackedbarrenderer.setSeriesPaint(1, gradientpaint1);
    groupedstackedbarrenderer.setSeriesPaint(5, gradientpaint1);
    groupedstackedbarrenderer.setSeriesPaint(9, gradientpaint1);
    GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, new Color(255, 34, 34), 0.0F, 0.0F,
            new Color(255, 136, 136));
    groupedstackedbarrenderer.setSeriesPaint(2, gradientpaint2);
    groupedstackedbarrenderer.setSeriesPaint(6, gradientpaint2);
    groupedstackedbarrenderer.setSeriesPaint(10, gradientpaint2);
    GradientPaint gradientpaint3 = new GradientPaint(0.0F, 0.0F, new Color(255, 255, 34), 0.0F, 0.0F,
            new Color(255, 255, 136));
    groupedstackedbarrenderer.setSeriesPaint(3, gradientpaint3);
    groupedstackedbarrenderer.setSeriesPaint(7, gradientpaint3);
    groupedstackedbarrenderer.setSeriesPaint(11, gradientpaint3);
    groupedstackedbarrenderer.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.HORIZONTAL));

    return jfreechart;
}

From source file:org.jfree.data.KeyToGroupMapTest.java

/**
 * Tests that the getGroupCount() method returns the correct values under
 * various circumstances.//from  w  w  w .  j  a  va 2 s .c  o  m
 */
@Test
public void testGroupCount() {
    KeyToGroupMap m1 = new KeyToGroupMap("Default Group");

    // a new map always has 1 group (the default group)
    assertEquals(1, m1.getGroupCount());

    // if the default group is not mapped to, it should still count towards
    // the group count...
    m1.mapKeyToGroup("C1", "G1");
    assertEquals(2, m1.getGroupCount());

    // now when the default group is mapped to, it shouldn't increase the
    // group count...
    m1.mapKeyToGroup("C2", "Default Group");
    assertEquals(2, m1.getGroupCount());

    // complicate things a little...
    m1.mapKeyToGroup("C3", "Default Group");
    m1.mapKeyToGroup("C4", "G2");
    m1.mapKeyToGroup("C5", "G2");
    m1.mapKeyToGroup("C6", "Default Group");
    assertEquals(3, m1.getGroupCount());

    // now overwrite group "G2"...
    m1.mapKeyToGroup("C4", "G1");
    m1.mapKeyToGroup("C5", "G1");
    assertEquals(2, m1.getGroupCount());
}

From source file:net.sf.dynamicreports.design.transformation.chartcustomizer.GroupedStackedBarRendererCustomizer.java

@Override
public void customize(JFreeChart chart, ReportParameters reportParameters) {
    this.seriesColors = new LinkedHashMap<String, Paint>();
    this.map = null;
    Set<String> groups = new LinkedHashSet<String>();
    CategoryDataset dataset = chart.getCategoryPlot().getDataset();

    for (int i = 0; i < dataset.getRowCount(); i++) {
        String rowKey = (String) dataset.getRowKey(i);
        String group = StringUtils.substringBefore(rowKey, GROUP_SERIES_KEY);
        String series = StringUtils.substringAfter(rowKey, GROUP_SERIES_KEY);
        if (map == null) {
            map = new KeyToGroupMap(group);
        }/*from w w w .j av  a  2s  .  c  o  m*/
        map.mapKeyToGroup(rowKey, group);
        groups.add(group);
        if (!seriesColors.containsKey(series)) {
            Paint paint = chart.getCategoryPlot().getDrawingSupplier().getNextPaint();
            seriesColors.put(series, paint);
        }
    }

    DefaultCategoryDataset newDataset = new DefaultCategoryDataset();
    for (Object column : dataset.getColumnKeys()) {
        for (String group : groups) {
            for (String series : seriesColors.keySet()) {
                try {
                    Number value = dataset.getValue(group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                    newDataset.addValue(value, group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                } catch (UnknownKeyException e) {
                    newDataset.addValue(0, group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                }
            }

        }
    }
    dataset = newDataset;

    GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();
    renderer.setSeriesToGroupMap(map);

    StackedBarRenderer categoryRenderer = (StackedBarRenderer) chart.getCategoryPlot().getRenderer();
    renderer.setBaseItemLabelsVisible(categoryRenderer.getBaseItemLabelsVisible());
    renderer.setBaseItemLabelFont(categoryRenderer.getBaseItemLabelFont());
    renderer.setBaseItemLabelPaint(categoryRenderer.getBaseItemLabelPaint());
    renderer.setBaseItemLabelGenerator(categoryRenderer.getBaseItemLabelGenerator());
    renderer.setShadowVisible(categoryRenderer.getShadowsVisible());

    renderer.setItemMargin(0.10);
    renderer.setDrawBarOutline(false);
    for (int i = 0; i < dataset.getRowCount(); i++) {
        String rowKey = (String) dataset.getRowKey(i);
        String score = StringUtils.substringAfter(rowKey, GROUP_SERIES_KEY);
        renderer.setSeriesPaint(i, seriesColors.get(score));
    }

    CategoryAxis domainAxis = chart.getCategoryPlot().getDomainAxis();
    SubCategoryAxis newDomainAxis = new SubCategoryAxis(domainAxis.getLabel());
    newDomainAxis.setLabelFont(domainAxis.getLabelFont());
    newDomainAxis.setTickLabelFont(domainAxis.getTickLabelFont());
    newDomainAxis.setLabelPaint(domainAxis.getLabelPaint());
    newDomainAxis.setTickLabelPaint(domainAxis.getTickLabelPaint());
    newDomainAxis.setAxisLinePaint(domainAxis.getAxisLinePaint());
    newDomainAxis.setTickMarkPaint(domainAxis.getTickMarkPaint());
    newDomainAxis.setTickLabelsVisible(domainAxis.isTickLabelsVisible());
    newDomainAxis.setTickMarksVisible(domainAxis.isTickMarksVisible());
    newDomainAxis.setCategoryMargin(0.05);
    for (String group : groups) {
        newDomainAxis.addSubCategory(group);
    }

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.setDomainAxis(newDomainAxis);
    plot.setRenderer(renderer);

    LegendItemCollection legendItems = new LegendItemCollection();
    for (String item : seriesColors.keySet()) {
        legendItems.add(new LegendItem(item, seriesColors.get(item)));
    }
    plot.setFixedLegendItems(legendItems);

    chart.getCategoryPlot().setDataset(dataset);
}

From source file:playground.yu.utils.charts.StackedBarChart.java

public void addSeries(String[] rowKeys, String[] columnKeys, String[] subCategoryKeys, double[][] values) {
    for (int rowIdx = 0; rowIdx < values.length; rowIdx++) {
        for (int columnIdx = 0; columnIdx < values[rowIdx].length; columnIdx++) {
            dataset.addValue(Double.valueOf(values[rowIdx][columnIdx]), rowKeys[rowIdx], columnKeys[columnIdx]);
        }//from  ww w. j ava  2  s  . com
    }

    GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();

    KeyToGroupMap map = new KeyToGroupMap(subCategoryKeys[0]);
    int size = rowKeys.length / subCategoryKeys.length;
    for (int rowIdx = 0; rowIdx < rowKeys.length; rowIdx++) {
        map.mapKeyToGroup(rowKeys[rowIdx], subCategoryKeys[rowIdx / size]);
    }
    renderer.setSeriesToGroupMap(map);

    Color[] paints = new Color[size];
    Random random = MatsimRandom.getLocalInstance();
    for (int i = 0; i < paints.length; i++) {
        paints[i] = new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256));
    }
    for (int i = 0; i < rowKeys.length; i++) {
        renderer.setSeriesPaint(i, paints[i % size]);
    }

    CategoryPlot plot = (CategoryPlot) chart.getPlot();

    SubCategoryAxis domainAxis = new SubCategoryAxis("subCategory / column");
    for (int subCtgr = 0; subCtgr < subCategoryKeys.length; subCtgr++) {
        domainAxis.addSubCategory(subCategoryKeys[subCtgr]);
    }

    plot.setDomainAxis(domainAxis);

    plot.setRenderer(renderer);
    // plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
}

From source file:org.jfree.data.KeyToGroupMapTest.java

/**
 * Tests that the getKeyCount() method returns the correct values under
 * various circumstances./*from ww w . ja  va 2  s  .  co m*/
 */
@Test
public void testKeyCount() {
    KeyToGroupMap m1 = new KeyToGroupMap("Default Group");

    // a new map always has 1 group (the default group)
    assertEquals(0, m1.getKeyCount("Default Group"));

    // simple case
    m1.mapKeyToGroup("K1", "G1");
    assertEquals(1, m1.getKeyCount("G1"));
    m1.mapKeyToGroup("K1", null);
    assertEquals(0, m1.getKeyCount("G1"));

    // if there is an explicit mapping to the default group, it is counted
    m1.mapKeyToGroup("K2", "Default Group");
    assertEquals(1, m1.getKeyCount("Default Group"));

    // complicate things a little...
    m1.mapKeyToGroup("K3", "Default Group");
    m1.mapKeyToGroup("K4", "G2");
    m1.mapKeyToGroup("K5", "G2");
    m1.mapKeyToGroup("K6", "Default Group");
    assertEquals(3, m1.getKeyCount("Default Group"));
    assertEquals(2, m1.getKeyCount("G2"));

    // now overwrite group "G2"...
    m1.mapKeyToGroup("K4", "G1");
    m1.mapKeyToGroup("K5", "G1");
    assertEquals(2, m1.getKeyCount("G1"));
    assertEquals(0, m1.getKeyCount("G2"));
}