Example usage for org.jfree.data.xy XYZDataset getItemCount

List of usage examples for org.jfree.data.xy XYZDataset getItemCount

Introduction

In this page you can find the example usage for org.jfree.data.xy XYZDataset getItemCount.

Prototype

public int getItemCount(int series);

Source Link

Document

Returns the number of items in a series.

Usage

From source file:org.pentaho.plugin.jfreereport.reportcharts.BubbleChartExpression.java

private double precomputeMaxZ(final XYZDataset dataset) {
    double retval = Double.MIN_VALUE;
    for (int series = 0; series < dataset.getSeriesCount(); series++) {
        final int itemcount = dataset.getItemCount(series);
        for (int item = 0; item < itemcount; item++) {
            final double value = dataset.getZValue(series, item);
            if (retval < value) {
                retval = value;// w ww. ja v a2 s .  c  o  m
            }
        }
    }
    return retval;
}

From source file:org.pentaho.plugin.jfreereport.reportcharts.FormulaXYZTooltipGenerator.java

/**
 * Generates a tool tip text item for a particular item within a series.
 *
 * @param dataset the dataset (<code>null</code> not permitted).
 * @param series  the series index (zero-based).
 * @param item    the item index (zero-based).
 * @return The tooltip text (possibly <code>null</code>).
 *//* ww  w.j  a  v  a  2 s . co  m*/
public String generateToolTip(final XYZDataset dataset, final int series, final int item) {
    try {
        final Object[] values = new Object[] { dataset.getX(series, item), dataset.getY(series, item),
                dataset.getZ(series, item), IntegerCache.getInteger(series), dataset.getSeriesKey(series),
                IntegerCache.getInteger(dataset.getSeriesCount()), IntegerCache.getInteger(item),
                IntegerCache.getInteger(dataset.getItemCount(series)) };
        formulaExpression.setRuntime(
                new WrapperExpressionRuntime(new StaticDataRow(ADDITIONAL_COLUMN_KEYS, values), runtime));
        final Object o = formulaExpression.getValue();
        if (o == null) {
            return null;
        }
        return String.valueOf(o);
    } finally {
        formulaExpression.setRuntime(null);
    }
}

From source file:org.pentaho.plugin.jfreereport.reportcharts.FormulaXYZURLGenerator.java

/**
 * Generates a URL for a particular item within a series. As a guideline, the URL should be valid within the context
 * of an XHTML 1.0 document./*w  w w .j a  va 2  s.  c  om*/
 *
 * @param dataset the dataset (<code>null</code> not permitted).
 * @param series  the series index (zero-based).
 * @param item    the item index (zero-based).
 * @return A string containing the generated URL.
 */
public String generateURL(final XYZDataset dataset, final int series, final int item) {
    try {
        final Object[] values = new Object[] { dataset.getX(series, item), dataset.getY(series, item),
                dataset.getZ(series, item), IntegerCache.getInteger(series), dataset.getSeriesKey(series),
                IntegerCache.getInteger(dataset.getSeriesCount()), IntegerCache.getInteger(item),
                IntegerCache.getInteger(dataset.getItemCount(series)) };
        formulaExpression.setRuntime(
                new WrapperExpressionRuntime(new StaticDataRow(ADDITIONAL_COLUMN_KEYS, values), runtime));
        final Object o = formulaExpression.getValue();
        if (o == null) {
            return null;
        }
        return String.valueOf(o);
    } finally {
        formulaExpression.setRuntime(null);
    }
}

From source file:net.sf.mzmine.chartbasics.gui.javafx.EChartViewer.java

/**
 * Default tries to extract all series from an XYDataset or XYZDataset<br>
 * series 1 | Series 2 <br>//from   ww w  . j av  a2  s . co  m
 * x y x y x y z x y z
 * 
 * @return Data array[columns][rows]
 */
public Object[][] getDataArrayForExport() {
    if (getChart().getPlot() instanceof XYPlot && getChart().getXYPlot() != null
            && getChart().getXYPlot().getDataset() != null) {
        try {
            List<Object[]> modelList = new ArrayList<>();

            for (int d = 0; d < getChart().getXYPlot().getDatasetCount(); d++) {
                XYDataset data = getChart().getXYPlot().getDataset(d);
                if (data instanceof XYZDataset) {
                    XYZDataset xyz = (XYZDataset) data;
                    int series = data.getSeriesCount();
                    Object[][] model = new Object[series * 3][];
                    for (int s = 0; s < series; s++) {
                        int size = 2 + xyz.getItemCount(s);
                        Object[] x = new Object[size];
                        Object[] y = new Object[size];
                        Object[] z = new Object[size];
                        // create new Array model[row][col]
                        // Write header
                        Comparable title = data.getSeriesKey(series);
                        x[0] = title;
                        y[0] = "";
                        z[0] = "";
                        x[1] = getChart().getXYPlot().getDomainAxis().getLabel();
                        y[1] = getChart().getXYPlot().getRangeAxis().getLabel();
                        z[1] = "z-axis";
                        // write data
                        for (int i = 0; i < xyz.getItemCount(s); i++) {
                            x[i + 2] = xyz.getX(s, i);
                            y[i + 2] = xyz.getY(s, i);
                            z[i + 2] = xyz.getZ(s, i);
                        }
                        model[s * 3] = x;
                        model[s * 3 + 1] = y;
                        model[s * 3 + 2] = z;
                    }

                    for (Object[] o : model)
                        modelList.add(o);
                } else {
                    int series = data.getSeriesCount();
                    Object[][] model = new Object[series * 2][];
                    for (int s = 0; s < series; s++) {
                        int size = 2 + data.getItemCount(s);
                        Object[] x = new Object[size];
                        Object[] y = new Object[size];
                        // create new Array model[row][col]
                        // Write header
                        Comparable title = data.getSeriesKey(s);
                        x[0] = title;
                        y[0] = "";
                        x[1] = getChart().getXYPlot().getDomainAxis().getLabel();
                        y[1] = getChart().getXYPlot().getRangeAxis().getLabel();
                        // write data
                        for (int i = 0; i < data.getItemCount(s); i++) {
                            x[i + 2] = data.getX(s, i);
                            y[i + 2] = data.getY(s, i);
                        }
                        model[s * 2] = x;
                        model[s * 2 + 1] = y;
                    }

                    for (Object[] o : model)
                        modelList.add(o);
                }
            }

            return modelList.toArray(new Object[modelList.size()][]);
        } catch (Exception ex) {
            logger.log(Level.WARNING, "Cannot retrieve data for export", ex);
            return null;
        }
    }
    return null;
}

From source file:net.sf.mzmine.chartbasics.gui.swing.EChartPanel.java

/**
 * Default tries to extract all series from an XYDataset or XYZDataset<br>
 * series 1 | Series 2 <br>/*from   w w w  .j a  v a 2  s  .c  o m*/
 * x y x y x y z x y z
 * 
 * @return Data array[columns][rows]
 */
public Object[][] getDataArrayForExport() {
    if (getChart().getPlot() instanceof XYPlot && getChart().getXYPlot() != null
            && getChart().getXYPlot().getDataset() != null) {
        try {
            List<Object[]> modelList = new ArrayList<>();

            for (int d = 0; d < getChart().getXYPlot().getDatasetCount(); d++) {
                XYDataset data = getChart().getXYPlot().getDataset(d);
                if (data instanceof XYZDataset) {
                    XYZDataset xyz = (XYZDataset) data;
                    int series = data.getSeriesCount();
                    Object[][] model = new Object[series * 3][];
                    for (int s = 0; s < series; s++) {
                        int size = 2 + xyz.getItemCount(s);
                        Object[] x = new Object[size];
                        Object[] y = new Object[size];
                        Object[] z = new Object[size];
                        // create new Array model[row][col]
                        // Write header
                        Comparable title = data.getSeriesKey(series);
                        x[0] = title;
                        y[0] = "";
                        z[0] = "";
                        x[1] = getChart().getXYPlot().getDomainAxis().getLabel();
                        y[1] = getChart().getXYPlot().getRangeAxis().getLabel();
                        z[1] = "z-axis";
                        // write data
                        for (int i = 0; i < xyz.getItemCount(s); i++) {
                            x[i + 2] = xyz.getX(s, i);
                            y[i + 2] = xyz.getY(s, i);
                            z[i + 2] = xyz.getZ(s, i);
                        }
                        model[s * 3] = x;
                        model[s * 3 + 1] = y;
                        model[s * 3 + 2] = z;
                    }

                    for (Object[] o : model)
                        modelList.add(o);
                } else {
                    int series = data.getSeriesCount();
                    Object[][] model = new Object[series * 2][];
                    for (int s = 0; s < series; s++) {
                        int size = 2 + data.getItemCount(s);
                        Object[] x = new Object[size];
                        Object[] y = new Object[size];
                        // create new Array model[row][col]
                        // Write header
                        Comparable title = data.getSeriesKey(s);
                        x[0] = title;
                        y[0] = "";
                        x[1] = getChart().getXYPlot().getDomainAxis().getLabel();
                        y[1] = getChart().getXYPlot().getRangeAxis().getLabel();
                        // write data
                        for (int i = 0; i < data.getItemCount(s); i++) {
                            x[i + 2] = data.getX(s, i);
                            y[i + 2] = data.getY(s, i);
                        }
                        model[s * 2] = x;
                        model[s * 2 + 1] = y;
                    }

                    for (Object[] o : model)
                        modelList.add(o);
                }
            }

            return modelList.toArray(new Object[modelList.size()][]);
        } catch (Exception ex) {
            return null;
        }
    }
    return null;
}

From source file:org.jfree.data.general.DatasetUtilities.java

/**
 * Iterates over the data items of the xyz dataset to find
 * the z-dimension bounds.// w w w . java  2  s .c o  m
 *
 * @param dataset  the dataset (<code>null</code> not permitted).
 * @param includeInterval  include the z-interval (if the dataset has a
 *     z-interval.
 *
 * @return The range (possibly <code>null</code>).
 */
public static Range iterateZBounds(XYZDataset dataset, boolean includeInterval) {
    double minimum = Double.POSITIVE_INFINITY;
    double maximum = Double.NEGATIVE_INFINITY;
    int seriesCount = dataset.getSeriesCount();

    for (int series = 0; series < seriesCount; series++) {
        int itemCount = dataset.getItemCount(series);
        for (int item = 0; item < itemCount; item++) {
            double value = dataset.getZValue(series, item);
            if (!Double.isNaN(value)) {
                minimum = Math.min(minimum, value);
                maximum = Math.max(maximum, value);
            }
        }
    }

    if (minimum == Double.POSITIVE_INFINITY) {
        return null;
    } else {
        return new Range(minimum, maximum);
    }
}

From source file:org.jfree.data.general.DatasetUtils.java

/**
 * Returns the range of z-values in the specified dataset for the
 * data items belonging to the visible series and with x-values in the
 * given range./*from   w w  w . j a  v  a  2 s .  c o  m*/
 *
 * @param dataset  the dataset ({@code null} not permitted).
 * @param visibleSeriesKeys  the visible series keys ({@code null} not
 *     permitted).
 * @param xRange  the x-range ({@code null} not permitted).
 * @param includeInterval  a flag that determines whether or not the
 *     z-interval for the dataset is included (this only applies if the
 *     dataset has an interval, which is currently not supported).
 *
 * @return The y-range (possibly {@code null}).
 */
public static Range iterateToFindZBounds(XYZDataset dataset, List visibleSeriesKeys, Range xRange,
        boolean includeInterval) {
    Args.nullNotPermitted(dataset, "dataset");
    Args.nullNotPermitted(visibleSeriesKeys, "visibleSeriesKeys");
    Args.nullNotPermitted(xRange, "xRange");

    double minimum = Double.POSITIVE_INFINITY;
    double maximum = Double.NEGATIVE_INFINITY;

    Iterator iterator = visibleSeriesKeys.iterator();
    while (iterator.hasNext()) {
        Comparable seriesKey = (Comparable) iterator.next();
        int series = dataset.indexOf(seriesKey);
        int itemCount = dataset.getItemCount(series);
        for (int item = 0; item < itemCount; item++) {
            double x = dataset.getXValue(series, item);
            double z = dataset.getZValue(series, item);
            if (xRange.contains(x)) {
                if (!Double.isNaN(z)) {
                    minimum = Math.min(minimum, z);
                    maximum = Math.max(maximum, z);
                }
            }
        }
    }

    if (minimum == Double.POSITIVE_INFINITY) {
        return null;
    } else {
        return new Range(minimum, maximum);
    }
}

From source file:org.jfree.data.general.DatasetUtilities.java

/**
 * Returns the range of z-values in the specified dataset for the
 * data items belonging to the visible series and with x-values in the
 * given range.//from   www.  ja  v  a  2  s  .  c  om
 *
 * @param dataset  the dataset (<code>null</code> not permitted).
 * @param visibleSeriesKeys  the visible series keys (<code>null</code> not
 *     permitted).
 * @param xRange  the x-range (<code>null</code> not permitted).
 * @param includeInterval  a flag that determines whether or not the
 *     z-interval for the dataset is included (this only applies if the
 *     dataset has an interval, which is currently not supported).
 *
 * @return The y-range (possibly <code>null</code>).
 */
public static Range iterateToFindZBounds(XYZDataset dataset, List visibleSeriesKeys, Range xRange,
        boolean includeInterval) {
    ParamChecks.nullNotPermitted(dataset, "dataset");
    ParamChecks.nullNotPermitted(visibleSeriesKeys, "visibleSeriesKeys");
    ParamChecks.nullNotPermitted(xRange, "xRange");

    double minimum = Double.POSITIVE_INFINITY;
    double maximum = Double.NEGATIVE_INFINITY;

    Iterator iterator = visibleSeriesKeys.iterator();
    while (iterator.hasNext()) {
        Comparable seriesKey = (Comparable) iterator.next();
        int series = dataset.indexOf(seriesKey);
        int itemCount = dataset.getItemCount(series);
        for (int item = 0; item < itemCount; item++) {
            double x = dataset.getXValue(series, item);
            double z = dataset.getZValue(series, item);
            if (xRange.contains(x)) {
                if (!Double.isNaN(z)) {
                    minimum = Math.min(minimum, z);
                    maximum = Math.max(maximum, z);
                }
            }
        }
    }

    if (minimum == Double.POSITIVE_INFINITY) {
        return null;
    } else {
        return new Range(minimum, maximum);
    }
}

From source file:net.sf.maltcms.chromaui.charts.FastHeatMapPlot.java

/**
 *
 * @param xyz/*from w  w w .ja v a 2 s .com*/
 * @param sl
 * @param spm
 * @param xybr
 * @param activeGraphics
 * @param dataArea
 * @param info
 * @param crosshairState
 * @return
 */
public BufferedImage prepareData(final XYZDataset xyz, final int sl, final int spm, final XYBlockRenderer xybr,
        Graphics2D activeGraphics, Rectangle2D dataArea, PlotRenderingInfo info,
        CrosshairState crosshairState) {
    long start = System.currentTimeMillis();
    final PaintScale ps = xybr.getPaintScale();
    double minz = Double.POSITIVE_INFINITY, maxz = Double.NEGATIVE_INFINITY;

    for (int i = 0; i < xyz.getSeriesCount(); i++) {
        final int items = xyz.getItemCount(i);
        for (int j = 0; j < items; j++) {
            minz = Math.min(xyz.getZValue(i, j), minz);
            maxz = Math.max(xyz.getZValue(i, j), maxz);
        }
    }
    if (ps instanceof GradientPaintScale) {
        ((GradientPaintScale) ps).setUpperBound(maxz);
        ((GradientPaintScale) ps).setLowerBound(minz);
    }
    Logger.getLogger(getClass().getName()).log(Level.INFO, "Finding min and max data took{0}ms",
            (System.currentTimeMillis() - start));

    //        VolatileImage bi = null;
    //        if (bi == null) {
    //        if (this.getOrientation() == PlotOrientation.VERTICAL) {
    BufferedImage bi = createCompatibleImage(sl, spm, BufferedImage.TRANSLUCENT);
    //        } else {
    //            bi = createCompatibleImage(spm, sl);
    //        }
    //        }else{
    //            img.validate(g.getDeviceConfiguration())
    //        }

    Graphics2D g2 = (Graphics2D) bi.getGraphics();
    g2.setColor((Color) ps.getPaint(ps.getLowerBound()));
    g2.fillRect(0, 0, sl, spm);
    // System.out.println("Using Threshold: " + threshold);
    int height = bi.getHeight();
    //final WritableRaster wr = bi.getRaster();
    XYItemRendererState xyrs = xybr.initialise(g2, dataArea, this, xyz, info);
    for (int i = 0; i < xyz.getSeriesCount(); i++) {
        final int items = xyz.getItemCount(i);
        for (int j = 0; j < items; j++) {
            final double tmp = xyz.getZValue(i, j);
            if (tmp > this.threshholdCutOff) {
                //if(j%50==0)System.out.println("Value > threshold: "+tmp);
                final Paint p = ps.getPaint(tmp);
                //                    final Paint tp = ps.getPaint(this.threshholdCutOff);
                //                    if (!tp.equals(p)) {
                if (p instanceof Color) {
                    final Color c = (Color) p;
                    g2.setColor(c);
                    //                    xybr.drawItem(g2, xyrs, dataArea, info, this, domainAxis, rangeAxis, xyz, i, j, crosshairState, 0);
                    //                        if (this.getOrientation() == PlotOrientation.VERTICAL) {

                    g2.fillRect((int) xyz.getXValue(i, j), height - (int) xyz.getYValue(i, j), 1, 1);
                    //                            wr.setPixel(, , new int[]{c.getRed(),
                    //                                        c.getGreen(), c.getBlue(), c.getAlpha()});
                    //                        } else {
                    //                            wr.setPixel((int) xyz.getYValue(i, j), (int) xyz.getXValue(i, j), new int[]{c.getRed(),
                    //                                        c.getGreen(), c.getBlue(), c.getAlpha()});
                    //                        }
                    //                }
                    //                    }
                }
            }
        }
    }

    Logger.getLogger(getClass().getName()).log(Level.INFO, "Creating image and drawing items took {0}ms",
            (System.currentTimeMillis() - start));

    return bi;
}