List of usage examples for org.jfree.data.xy XYZDataset getItemCount
public int getItemCount(int series);
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; }