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

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

Introduction

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

Prototype

public Number getY(int series, int item);

Source Link

Document

Returns the y-value for an item within a series.

Usage

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>).
 *//* w w  w  . jav  a2 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  v a2  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:com.igalia.java.zk.components.JFreeChartEngine.java

/**
 * decode XYItemEntity into key-value pair of Area's componentScope.
 *//*from  w  ww. j  ava 2  s.c o  m*/
private void decodeXYInfo(Area area, XYItemEntity info, Chart chart) {
    if (info == null) {
        return;
    }
    TimeZone tz = chart.getTimeZone();
    if (tz == null)
        tz = TimeZones.getCurrent();

    XYDataset dataset = info.getDataset();
    int si = info.getSeriesIndex();
    int ii = info.getItem();

    area.setAttribute("series", dataset.getSeriesKey(si));

    if (dataset instanceof XYZDataset) {
        XYZDataset ds = (XYZDataset) dataset;
        area.setAttribute("x", ds.getX(si, ii));
        area.setAttribute("y", ds.getY(si, ii));
        area.setAttribute("z", ds.getZ(si, ii));
    } else {
        area.setAttribute("x", dataset.getX(si, ii));
        area.setAttribute("y", dataset.getY(si, ii));
    }

}

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

/**
 *
 * @param dataset//  w  w  w  .j  av  a2 s  .  c o  m
 * @param tooltipGenerator
 * @param minRange
 * @param maxRange
 * @param useRT
 * @return
 */
public XYPlot provide1DCoPlot(XYZDataset dataset, SelectionAwareXYTooltipGenerator tooltipGenerator,
        double minRange, double maxRange, boolean useRT) {
    XYBlockRenderer xyb = new XYBlockRenderer();
    GradientPaintScale ps = new GradientPaintScale(ImageTools.createSampleTable(256), minRange, maxRange,
            ImageTools.rampToColorArray(new ColorRampReader().readColorRamp("res/colorRamps/bcgyr.csv")));

    xyb.setPaintScale(ps);
    final String[] colnames = new String[dataset.getSeriesCount()];
    for (int i = 0; i < dataset.getSeriesCount(); i++) {
        colnames[i] = "" + dataset.getSeriesKey(i);//StringTools.removeFileExt(fragments.get(i).getName());
    }
    NumberAxis na = null;
    if (useRT) {
        na = new NumberAxis("time [s]");
        na.setAutoRangeIncludesZero(false);
        na.setLowerMargin(0);
        na.setUpperMargin(0);
    } else {
        na = new NumberAxis("scan index");
    }
    // na.setVerticalTickLabels(true);
    XYPlot xyp = new XYPlot(dataset, na, new SymbolAxis("chromatogram", colnames), xyb);
    //xyb.setBlockWidth(1);
    xyp.setBackgroundPaint(ps.getPaint(ps.getLowerBound()));
    tooltipGenerator.setXYToolTipGenerator(new XYZToolTipGenerator() {
        @Override
        public String generateToolTip(XYZDataset xyzd, int i, int i1) {
            return colnames[xyzd.getY(i, i1).intValue()] + " @" + xyzd.getXValue(i, i1) + " = "
                    + xyzd.getZValue(i, i1);
        }

        @Override
        public String generateToolTip(XYDataset xyd, int i, int i1) {
            if (xyd instanceof XYZDataset) {
                return generateToolTip((XYZDataset) xyd, i, i1);
            }
            return colnames[xyd.getY(i, i1).intValue()] + ":" + xyd.getXValue(i, i1);
        }
    });
    xyb.setBaseToolTipGenerator(tooltipGenerator);
    return xyp;
}

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

/**
 *
 * @param fragments//www .j  a  v a  2s . com
 * @param ticvar
 * @param useRT
 * @return
 */
public XYPlot provide1DCoPlot(List<IFileFragment> fragments, String ticvar, boolean useRT) {

    final String satVar = "scan_acquisition_time";

    DefaultXYZDataset cd = new DefaultXYZDataset();
    int rowIdx = 0;
    double min = 0;
    double max = 1;
    double minRT = Double.POSITIVE_INFINITY;
    double maxRT = Double.NEGATIVE_INFINITY;

    int y = 0;
    for (IFileFragment f : fragments) {

        double[] domainValues = null;
        if (useRT) {
            domainValues = (double[]) f.getChild(satVar).getArray().get1DJavaArray(double.class);
        } else {
            domainValues = (double[]) f.getChild("scan_index").getArray().get1DJavaArray(double.class);
        }

        double[] tic = (double[]) f.getChild(ticvar).getArray().get1DJavaArray(double.class);
        double maxtic = MathTools.max(tic);
        double mintic = MathTools.min(tic);
        double[][] values = new double[3][tic.length];
        for (int i = 0; i < tic.length; i++) {
            values[0][i] = domainValues[i];
            values[1][i] = y;
            values[2][i] = Math.sqrt((tic[i] - mintic) / (maxtic - mintic));
        }

        y++;
        cd.addSeries(f.getName(), values);
    }

    // ArrayDouble.D1 a = new ArrayDouble.D1(npoints);
    // int offset = 0;
    // for (IFileFragment f : t) {
    // Array tic = f.getChild(ticvar).getArray();
    // int len = tic.getShape()[0];
    // Array.arraycopy(tic, 0, a, offset, len);
    // offset += len;
    // }
    // histogram with fixed binsize
    // fill intensities into adequate bin, raise count in bin by one
    // afterwards, relative frequency within a bin gives a normalization
    // coefficient
    XYBlockRenderer xyb = new XYBlockRenderer();
    GradientPaintScale ps = new GradientPaintScale(ImageTools.createSampleTable(256), min, max,
            ImageTools.rampToColorArray(new ColorRampReader().readColorRamp("res/colorRamps/bcgyr.csv")));

    xyb.setPaintScale(ps);
    final String[] colnames = new String[fragments.size()];
    for (int i = 0; i < colnames.length; i++) {
        colnames[i] = StringTools.removeFileExt(fragments.get(i).getName());
    }
    NumberAxis na = null;
    if (useRT) {
        na = new NumberAxis("time [s]");
        na.setAutoRangeIncludesZero(false);
        na.setLowerMargin(0);
        na.setUpperMargin(0);
    } else {
        na = new NumberAxis("scan index");
    }
    // na.setVerticalTickLabels(true);
    XYPlot xyp = new XYPlot(cd, na, new SymbolAxis("chromatogram", colnames), xyb);
    xyb.setBlockWidth(1);
    xyp.setBackgroundPaint(Color.BLACK);
    xyb.setBaseToolTipGenerator(new XYZToolTipGenerator() {
        @Override
        public String generateToolTip(XYZDataset xyzd, int i, int i1) {
            return colnames[xyzd.getY(i, i1).intValue()] + " @" + xyzd.getXValue(i, i1) + " = "
                    + xyzd.getZValue(i, i1);
        }

        @Override
        public String generateToolTip(XYDataset xyd, int i, int i1) {
            if (xyd instanceof XYZDataset) {
                return generateToolTip((XYZDataset) xyd, i, i1);
            }
            return colnames[xyd.getY(i, i1).intValue()] + ":" + xyd.getXValue(i, i1);
        }
    });
    return xyp;
}

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 w  w  w  . j a va  2s  .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) {
            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 va 2s .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) {
            return null;
        }
    }
    return null;
}