Example usage for org.jfree.data.xy XYDataset getSeriesCount

List of usage examples for org.jfree.data.xy XYDataset getSeriesCount

Introduction

In this page you can find the example usage for org.jfree.data.xy XYDataset getSeriesCount.

Prototype

public int getSeriesCount();

Source Link

Document

Returns the number of series in the dataset.

Usage

From source file:slash.navigation.converter.gui.profileview.LazyToolTipChartPanel.java

protected String getTooltipAtPoint(Point point) {
    XYPlot plot = (XYPlot) getChart().getPlot();
    PlotRenderingInfo info = getChartRenderingInfo().getPlotInfo();
    double x0 = point.getX();
    double x1 = x0 - 2 * getScaleX();
    double x2 = x0 + 4 * getScaleX();

    ValueAxis domainAxis = plot.getDomainAxis();
    Rectangle2D screenArea = scale(info.getDataArea());
    double tx1 = domainAxis.java2DToValue(x1, screenArea, BOTTOM);
    double tx2 = domainAxis.java2DToValue(x2, screenArea, BOTTOM);

    for (int datasetIndex = 0; datasetIndex < plot.getDatasetCount(); datasetIndex++) {
        XYDataset dataset = plot.getDataset(datasetIndex);
        for (int seriesIndex = 0; seriesIndex < dataset.getSeriesCount(); seriesIndex++) {
            int itemCount = dataset.getItemCount(seriesIndex);
            for (int itemIndex = 0; itemIndex < itemCount; itemIndex++) {
                double xValue = dataset.getXValue(seriesIndex, itemIndex);
                if (tx1 < xValue && xValue < tx2)
                    return toolTipGenerator.generateToolTip(dataset, seriesIndex, itemIndex);
            }//from   w  w w.  j  a va 2 s  . co  m
        }
    }
    return null;
}

From source file:com.googlecode.logVisualizer.chart.MPGainedSpentPerTurnXYBarChart.java

/**
 * Method overridden to make the MP spent bar colour use a bit of alpha,
 * otherwise MP gains below MP spent wouldn't be viewable.
 *//* w  w  w. ja  v  a 2  s .co  m*/
@Override
protected ChartPanel createChartPanel() {
    final ChartPanel panel = super.createChartPanel();
    final XYPlot plot = (XYPlot) panel.getChart().getPlot();
    final XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    final XYDataset dataset = plot.getDataset();

    for (int i = 0; i < dataset.getSeriesCount(); i++)
        if (dataset.getSeriesKey(i).equals("MP spent"))
            renderer.setSeriesPaint(i, new Color(255, 80, 80, 200));
        else if (dataset.getSeriesKey(i).equals("MP gained"))
            renderer.setSeriesPaint(i, new Color(100, 100, 255));

    return panel;
}

From source file:dbseer.gui.events.InformationChartMouseListener.java

@Override
public void chartMouseClicked(ChartMouseEvent event) {
    Rectangle2D dataArea = chartPanel.getScreenDataArea();
    JFreeChart chart = event.getChart();
    XYPlot plot = (XYPlot) chart.getPlot();
    ValueAxis xAxis = plot.getDomainAxis();
    int x = (int) Math.round(xAxis.java2DToValue(event.getTrigger().getX(), dataArea, RectangleEdge.BOTTOM));

    XYDataset dataset = plot.getDataset();
    int maxX = DatasetUtilities.findMaximumDomainValue(dataset).intValue();
    if (x >= 1 && x <= maxX) {
        int seriesCount = dataset.getSeriesCount();
        int[] mixtures = new int[seriesCount - 1];
        int total = 0;
        for (int i = 0; i < seriesCount - 1; ++i) {
            mixtures[i] = (int) dataset.getYValue(i, x - 1);
            total += mixtures[i];//  w ww . j a va2 s. com
        }
        for (int i = 0; i < seriesCount - 1; ++i) {
            mixtures[i] = (int) Math.round((double) mixtures[i] / (double) total * 100.0);
            tpsMixturePanel.setMixture(i, mixtures[i]);
        }
    }
}

From source file:net.sf.dynamicreports.test.jasper.chart.ChartSeriesColorsByNameTest.java

@Override
public void test() {
    super.test();

    numberOfPagesTest(1);//from  ww w. j a v a  2s.  c o m

    chartCountTest("summary.chart1", 1);
    JFreeChart chart = getChart("summary.chart1", 0);
    CategoryItemRenderer renderer1 = chart.getCategoryPlot().getRenderer();
    CategoryDataset dataset1 = chart.getCategoryPlot().getDataset();
    for (int i = 0; i < dataset1.getRowCount(); i++) {
        String key = (String) dataset1.getRowKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer1.getSeriesPaint(i));
    }

    chartCountTest("summary.chart2", 1);
    chart = getChart("summary.chart2", 0);
    CategoryItemRenderer renderer2 = chart.getCategoryPlot().getRenderer();
    CategoryDataset dataset2 = chart.getCategoryPlot().getDataset();
    for (int i = 0; i < dataset2.getRowCount(); i++) {
        String key = (String) dataset2.getRowKey(i);
        key = StringUtils.substringAfter(key, GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer2.getSeriesPaint(i));
    }
    for (int i = 0; i < chart.getCategoryPlot().getFixedLegendItems().getItemCount(); i++) {
        LegendItem legendItem = chart.getCategoryPlot().getFixedLegendItems().get(i);
        Assert.assertNotNull("null series color", colors.get(legendItem.getLabel()));
        Assert.assertEquals("series color", colors.get(legendItem.getLabel()), legendItem.getFillPaint());
    }

    chartCountTest("summary.chart3", 1);
    chart = getChart("summary.chart3", 0);
    PiePlot plot3 = (PiePlot) chart.getPlot();
    PieDataset dataset3 = plot3.getDataset();
    for (int i = 0; i < dataset3.getItemCount(); i++) {
        String key = (String) dataset3.getKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), plot3.getSectionPaint(key));
    }

    chartCountTest("summary.chart4", 1);
    chart = getChart("summary.chart4", 0);
    XYItemRenderer renderer4 = chart.getXYPlot().getRenderer();
    XYDataset dataset4 = chart.getXYPlot().getDataset();
    for (int i = 0; i < dataset4.getSeriesCount(); i++) {
        String key = (String) dataset4.getSeriesKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer4.getSeriesPaint(i));
    }
}

From source file:com.alcatel_lucent.nz.wnmsreport.chart.TimeSeriesIuRChartCustomiser.java

public void customise(JFreeChart chart, JRChart jasperchart) {
    XYPlot xyplot = chart.getXYPlot();//from w  ww  . jav  a 2s. co m
    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyplot.getRenderer();
    XYDataset xyDataset = xyplot.getDataset();
    LegendItemCollection legend = xyplot.getLegendItems();
    LegendItemCollection revised = new LegendItemCollection();

    if (xyDataset != null) {
        for (int i = 0; i < xyDataset.getSeriesCount(); i++) {
            if (i < 1) {
                //make line 1 dashed
                renderer.setSeriesStroke(i, stroke_dashed);
            } else {
                //make other lines filled and add to new legend
                renderer.setSeriesStroke(i, stroke_normal);
                revised.add(legend.get(i));
            }
            renderer.setSeriesLinesVisible(i, true);
        }
    }
    xyplot.setFixedLegendItems(revised);
}

From source file:org.esa.beam.pixex.output.ScatterPlotDecoratingStrategyTest.java

@Test
public void testCreateScatterPlotsForSingleProduct() throws Exception {
    Measurement[] productMeasurements = new Measurement[] {
            new Measurement(0, "someName", PRODUCT_ID_0, -1, -1, null, null, new Object[] { 7, 4.0 }, true),
            new Measurement(1, "someOtherName", PRODUCT_ID_0, -1, -1, null, null, new Object[] { 9, 3.0 },
                    true) };/*  w w  w  . j  av  a2  s.c  o  m*/

    assertTrue(strategy.plotMaps.isEmpty());

    final Product product = createProduct("newProduct");
    strategy.writeHeader(null, product);
    strategy.writeMeasurements(product, null, productMeasurements);

    assertEquals(1, strategy.plotMaps.size());
    final int scatterPlotCountForProduct = strategy.plotMaps.get(PRODUCT_ID_0).size();
    assertEquals(2, scatterPlotCountForProduct);

    JFreeChart sstPlot = strategy.plotMaps.get(PRODUCT_ID_0).get(variableCombinations[0]);
    assertEquals("original_sst", sstPlot.getXYPlot().getDomainAxis().getLabel());
    assertEquals("product_sst", sstPlot.getXYPlot().getRangeAxis().getLabel());
    assertEquals("Scatter plot of 'original_sst' and 'product_sst' for product 'newProduct'",
            sstPlot.getTitle().getText());

    XYDataset sstDataset = sstPlot.getXYPlot().getDataset();
    assertNotNull(sstDataset);
    assertEquals(1, sstDataset.getSeriesCount());

    int seriesIndex = 0;

    assertEquals(2, sstDataset.getItemCount(0));

    assertEquals(6, sstDataset.getX(seriesIndex, 0));
    assertEquals(7, sstDataset.getY(seriesIndex, 0));

    assertEquals(8, sstDataset.getX(seriesIndex, 1));
    assertEquals(9, sstDataset.getY(seriesIndex, 1));

    JFreeChart tsmPlot = strategy.plotMaps.get(PRODUCT_ID_0).get(variableCombinations[1]);
    assertEquals("original_tsm", tsmPlot.getXYPlot().getDomainAxis().getLabel());
    assertEquals("product_tsm", tsmPlot.getXYPlot().getRangeAxis().getLabel());
    assertEquals("Scatter plot of 'original_tsm' and 'product_tsm' for product 'newProduct'",
            tsmPlot.getTitle().getText());

    XYDataset tsmDataset = tsmPlot.getXYPlot().getDataset();
    assertNotNull(tsmDataset);
    assertEquals(1, tsmDataset.getSeriesCount());

    assertEquals(2, tsmDataset.getItemCount(0));

    assertEquals(2.0, tsmDataset.getX(seriesIndex, 0));
    assertEquals(3.0, tsmDataset.getY(seriesIndex, 0));

    assertEquals(3.0, tsmDataset.getX(seriesIndex, 1));
    assertEquals(4.0, tsmDataset.getY(seriesIndex, 1));
}

From source file:org.talend.dataprofiler.chart.util.ToolTipChartComposite.java

/**
 * This method attempts to get a tooltip by converting the screen X,Y into Chart Area X,Y and then looking for a
 * data point in a data set that lies inside a hotspot around that value.
 * /*from w  w  w  . ja  v  a 2  s .  co  m*/
 * @param point The Java 2D point
 * @return A string for the data at the point or null if no data is found.
 */
protected String getTooltipAtPoint(Point point) {
    String result = null;

    Point2D translatedPoint = this.translateScreenToJava2D(point);
    Plot plot = this.getChart().getPlot();
    PlotRenderingInfo info = this.getChartRenderingInfo().getPlotInfo();
    if (plot instanceof CombinedDomainXYPlot) {
        int index = info.getSubplotIndex(translatedPoint);
        if (index < 0) {
            index = 0;
        }
        plot = (Plot) ((CombinedDomainXYPlot) plot).getSubplots().get(index);
        info = this.getChartRenderingInfo().getPlotInfo().getSubplotInfo(index);
    }
    if (plot != null && plot instanceof XYPlot) {
        XYPlot xyPlot = (XYPlot) plot;
        ValueAxis domainAxis = xyPlot.getDomainAxis();
        ValueAxis rangeAxis = xyPlot.getRangeAxis();
        // had to switch to SWT's rectangle here.
        Rectangle screenArea = this.scale(info.getDataArea());

        double hotspotSizeX = hotspontsize * this.getScaleX();
        double hotspotSizeY = hotspontsize * this.getScaleY();
        double x0 = point.getX();
        double y0 = point.getY();
        double x1 = x0 - hotspotSizeX;
        double y1 = y0 + hotspotSizeY;
        double x2 = x0 + hotspotSizeX;
        double y2 = y0 - hotspotSizeY;
        RectangleEdge xEdge = RectangleEdge.BOTTOM;
        RectangleEdge yEdge = RectangleEdge.LEFT;
        // Switch everything for horizontal charts
        if (xyPlot.getOrientation() == PlotOrientation.HORIZONTAL) {
            hotspotSizeX = hotspontsize * this.getScaleY();
            hotspotSizeY = hotspontsize * this.getScaleX();
            x0 = point.getY();
            y0 = point.getX();
            x1 = x0 + hotspotSizeX;
            y1 = y0 - hotspotSizeY;
            x2 = x0 - hotspotSizeX;
            y2 = y0 + hotspotSizeY;
            xEdge = RectangleEdge.LEFT;
            yEdge = RectangleEdge.BOTTOM;
        }

        // OK, here we have to get ourselves back into AWT land...
        Rectangle2D r2d = new Rectangle2D.Double();
        r2d.setRect(screenArea.x, screenArea.y, screenArea.width, screenArea.height);

        double ty0 = rangeAxis.java2DToValue(y0, r2d, yEdge);
        double tx1 = domainAxis.java2DToValue(x1, r2d, xEdge);
        double ty1 = rangeAxis.java2DToValue(y1, r2d, yEdge);
        double tx2 = domainAxis.java2DToValue(x2, r2d, xEdge);
        double ty2 = rangeAxis.java2DToValue(y2, r2d, yEdge);

        int datasetCount = xyPlot.getDatasetCount();
        for (int datasetIndex = 0; datasetIndex < datasetCount; datasetIndex++) {
            XYDataset dataset = xyPlot.getDataset(datasetIndex);
            int seriesCount = dataset.getSeriesCount();
            for (int series = 0; series < seriesCount; series++) {
                int itemCount = dataset.getItemCount(series);
                if (dataset instanceof OHLCDataset) {
                    // This could be optimized to use a binary search for x first
                    for (int item = 0; item < itemCount; item++) {
                        double xValue = dataset.getXValue(series, item);
                        double yValueHi = ((OHLCDataset) dataset).getHighValue(series, item);
                        double yValueLo = ((OHLCDataset) dataset).getLowValue(series, item);
                        // Check hi lo and swap if needed
                        if (yValueHi < yValueLo) {
                            double temp = yValueHi;
                            yValueHi = yValueLo;
                            yValueLo = temp;
                        }
                        // Check if the dataset 'X' value lies between the hotspot (tx1 < xValue < tx2)
                        if (tx1 < xValue && xValue < tx2) {
                            // Check if the cursor 'y' value lies between the high and low (low < ty0 < high)
                            if (yValueLo < ty0 && ty0 < yValueHi) {
                                return hiLoTips.generateToolTip(dataset, series, item);
                            }
                        }
                    }
                } else {
                    // This could be optimized to use a binary search for x first
                    for (int item = 0; item < itemCount; item++) {
                        double xValue = dataset.getXValue(series, item);
                        double yValue = dataset.getYValue(series, item);
                        // Check if the dataset 'X' value lies between the hotspot (tx1< xValue < tx2)
                        if (tx1 < xValue && xValue < tx2) {
                            // Check if the dataset 'Y' value lies between the hotspot (ty1 < yValue < ty2)
                            if (ty1 < yValue && yValue < ty2) {
                                return xyTips.generateToolTip(dataset, series, item);
                            }
                        }
                    }
                }
            }
        }
    }

    return result;
}

From source file:org.openfaces.component.chart.impl.configuration.charts.BarChartConfigurator.java

private Plot createPlot(Chart chart, ModelInfo info) {
    final BarChartView chartView = (BarChartView) chart.getChartView();

    if (info.getModelType().equals(ModelType.Number)) {
        XYDataset ds = ModelConverter.toXYSeriesCollection(info);
        XYBarRenderer renderer = new XYBarRendererAdapter();
        ConfigurableRenderer configurableRenderer = (ConfigurableRenderer) renderer;

        int seriesCount = ds != null ? ds.getSeriesCount() : 0;
        configure(chartView, configurableRenderer, seriesCount);

        final GridXYPlotAdapter xyPlotAdapter = new GridXYPlotAdapter(ds, renderer, chartView);
        initMarkers(chart, xyPlotAdapter);

        return xyPlotAdapter;
    }//  w ww .  j  a v a2  s.  c  o m

    if (info.getModelType().equals(ModelType.Date)) {
        TimeSeriesCollection ds = ModelConverter.toTimeSeriesCollection(chart, info);
        XYBarRenderer renderer = new XYBarRendererAdapter();
        ConfigurableRenderer configurableRenderer = (ConfigurableRenderer) renderer;

        int seriesCount = ds != null ? ds.getSeriesCount() : 0;
        configure(chartView, configurableRenderer, seriesCount);

        final GridDatePlotAdapter datePlotAdapter = new GridDatePlotAdapter(ds, renderer, chartView);
        initMarkers(chart, datePlotAdapter);

        return datePlotAdapter;
    }

    CategoryDataset ds = ModelConverter.toCategoryDataset(info);
    int rowCount = ds != null ? ds.getRowCount() : 0;

    BarRenderer renderer = chartView.isEnable3D() ? new BarRenderer3DAdapter() : new BarRendererAdapter();

    ConfigurableRenderer configurableRenderer = (ConfigurableRenderer) renderer;
    configure(chartView, configurableRenderer, rowCount);

    if (chartView.isEnable3D() && renderer instanceof BarRenderer3DAdapter) {
        ((BarRenderer3DAdapter) renderer).setWallPaint(chartView.getWallColor());
    }

    final GridCategoryPlotAdapter gridCategoryPlot = new GridCategoryPlotAdapter(ds, renderer, chartView);
    initMarkers(chart, gridCategoryPlot);

    return gridCategoryPlot;
}

From source file:com.googlecode.logVisualizer.chart.LineChartBuilder.java

private JFreeChart createChart(final XYDataset dataset) {
    final JFreeChart chart = ChartFactory.createXYLineChart(getTitle(), xLable, yLable, dataset,
            PlotOrientation.VERTICAL, isIncludeLegend(), true, false);
    final XYPlot plot = (XYPlot) chart.getPlot();

    double lastXValue = 0;
    if (dataset.getSeriesCount() > 0)
        lastXValue = dataset.getXValue(0, dataset.getItemCount(0) - 1);

    plot.setDomainAxis(new FixedZoomNumberAxis(lastXValue));
    plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.black);
    plot.setRangeGridlinePaint(Color.black);
    plot.setNoDataMessage("No data available");
    if (dataset.getSeriesCount() > 0)
        ((NumberAxis) plot.getDomainAxis()).setUpperBound(lastXValue);
    ((NumberAxis) plot.getRangeAxis()).setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    for (int i = 0; i < dataset.getSeriesCount(); i++) {
        renderer.setSeriesShapesVisible(i, false);
        renderer.setSeriesStroke(i, new BasicStroke(2));
    }//from w  w w . j  a va 2s.co m
    renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
    plot.setRenderer(renderer);

    return chart;
}

From source file:net.sf.maltcms.common.charts.ui.XYChartTopComponent.java

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
    final String renderer = (String) jComboBox1.getSelectedItem();
    Task t = RequestProcessor.getDefault().create(new Runnable() {
        @Override/*from  w  w  w.  j  av  a  2 s . c  o  m*/
        public void run() {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    panel.setEnabled(false);
                    panel.invalidate();
                    panel.validate();
                }
            });

            int nrenderer = panel.getChart().getXYPlot().getRendererCount();
            XYPlot plot = panel.getChart().getXYPlot();
            int ndatasets = panel.getChart().getXYPlot().getDatasetCount();
            List<Shape> shapes = new LinkedList<>();
            for (int i = 0; i < nrenderer; i++) {
                for (int j = 0; j < plot.getDataset(i).getSeriesCount(); j++) {
                    XYDataset d = plot.getDataset(i);
                    for (int k = 0; k < d.getSeriesCount(); k++) {
                        Shape s = plot.getRendererForDataset(d).getSeriesShape(k);
                        shapes.add(s);
                    }
                }
            }
            switch (renderer) {
            case "Line And Shape":
                panel.getChart().getXYPlot().setRenderer(new XYLineAndShapeRenderer(true, true));
                break;
            case "Line":
                panel.getChart().getXYPlot().setRenderer(new XYLineAndShapeRenderer(true, false));
                break;
            case "Shape":
                panel.getChart().getXYPlot().setRenderer(new XYLineAndShapeRenderer(false, true));
                break;
            case "Area":
                panel.getChart().getXYPlot().setRenderer(new XYAreaRenderer(XYAreaRenderer.AREA));
                break;
            case "Area w/ Shapes":
                panel.getChart().getXYPlot().setRenderer(new XYAreaRenderer(XYAreaRenderer.AREA_AND_SHAPES));
                break;
            }
            panel.getChart().getXYPlot().getRenderer().setBaseToolTipGenerator(new StandardXYToolTipGenerator(
                    "%2.5f", NumberFormat.getNumberInstance(), NumberFormat.getNumberInstance()));
            int shapeIndex = 0;
            for (int i = 0; i < nrenderer; i++) {
                for (int j = 0; j < plot.getDataset(i).getSeriesCount(); j++) {
                    XYDataset d = plot.getDataset(i);
                    for (int k = 0; k < d.getSeriesCount(); k++) {
                        plot.getRendererForDataset(d).setSeriesShape(k, shapes.get(shapeIndex));
                        shapeIndex++;
                    }
                }
            }
            customizeChart(panel);
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    panel.setEnabled(true);
                    panel.invalidate();
                    panel.validate();
                }
            });

        }
    });
    t.addTaskListener(new XYChartLoaderTaskListener());
    RequestProcessor.getDefault().post(t);
}