List of usage examples for org.jfree.data.xy XYDataset getSeriesCount
public int getSeriesCount();
From source file:windows.sensorWindow.java
/** * collects values from the selection and copies them into the templatePlot * object//from ww w . j a v a 2s . c om * * @param x1 * @param x2 * @param dataSet */ public static void collectPlotValues(double x1, double x2, XYDataset dataSet) { Comparable comparable; int indexOf; ArrayList<MeasurementEntry> entries = new ArrayList<MeasurementEntry>(); if (dataSet != null) { int k = dataSet.getSeriesCount(); for (int i = 0; i < dataSet.getSeriesCount(); i++) { comparable = dataSet.getSeriesKey(i); indexOf = dataSet.indexOf(comparable); for (int j = 0; j < dataSet.getItemCount(indexOf); j++) { long x = (long) dataSet.getXValue(indexOf, j); if (x >= x1) { double y = dataSet.getYValue(indexOf, j); // System.out.println("valueX["+j+"] = "+functions.Common.doubleToTime(x)+", y = "+y); entries.add(new MeasurementEntry(x, y)); } if (x >= x2) { break; } } } } templatePlot.replacePointList(entries); }
From source file:no.met.jtimeseries.chart.ChartPlotter.java
public void addPercipitationBars(TimeBase timeBase, String title, NumberPhenomenon phenomenon, Color color) { XYDataset dataSet = phenomenon.getTimeSeries(title, timeBase); if (dataSet.getSeriesCount() > 0) { double margin = 0.1; double maxPrecipitation = phenomenon.getMaxValue(); addBarChart(dataSet, "value", color, margin, maxPrecipitation); showBarValuesOnTop(plotIndex - 1, 6D); plot.getRangeAxis(getRangeAxisIndex() - 1).setVisible(false); final Marker marker = new ValueMarker(0); marker.setPaint(Color.GRAY); marker.setStroke(new BasicStroke(1)); plot.addRangeMarker(getRangeAxisIndex() - 1, marker, Layer.BACKGROUND); }/* w w w . j a v a 2 s. c om*/ }
From source file:sanger.team16.gui.genevar.eqtl.gene.RegionalPlot.java
private JFreeChart createChart(String geneChromosome, int geneStart, int distanceToTSS, double threshold, XYDataset dataset) { JFreeChart chart = ChartFactory.createScatterPlot(null, "Position on chromosome " + geneChromosome + " (bp)", "-log10(P)", dataset, PlotOrientation.VERTICAL, true, true, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.WHITE); plot.setDomainGridlinePaint(Color.lightGray); //plot.setRangeGridlinePaint(Color.lightGray); //plot.setRangeCrosshairVisible(true); //NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); //domainAxis.setRange(geneStart - distance, geneStart + distance); //domainAxis.setUpperMargin(1000); //domainAxis.setLowerMargin(1000); //ValueAxis rangeAxis = plot.getRangeAxis(); //rangeAxis.setUpperMargin(dataset.getYValue(0, 0)/5); //rangeAxis.setLowerBound(0); XYItemRenderer renderer = plot.getRenderer(); int size = dataset.getSeriesCount(); for (int i = 0; i < size; i++) { //int scale = (int) Math.round((255 - (255 * dataset.getYValue(i, 0)) / top) / 1.4); //renderer.setSeriesPaint(i, new Color(255, scale, scale)); renderer.setSeriesPaint(i, new Color(255, 0, 0)); renderer.setSeriesShape(i, ShapeUtilities.createDiamond((float) 3)); renderer.setBaseSeriesVisibleInLegend(false); }//w w w . jav a 2s .c o m ValueMarker upperMarker = new ValueMarker(-Math.log10(threshold)); upperMarker.setPaint(Color.gray); //upperMarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); //upperMarker.setLabel("-log10(10E-4)"); //upperMarker.setLabelPaint(Color.red); //upperMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); //upperMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); float[] f = { 4, 3, 4, 3 }; upperMarker.setStroke(new BasicStroke(1.0f, 1, 1, 0, f, 1.0f)); plot.addRangeMarker(upperMarker); ValueMarker marker = new ValueMarker(0.0); marker.setPaint(Color.lightGray); plot.addRangeMarker(marker); XYSeries series = new XYSeries("Range"); series.add(geneStart - distanceToTSS, -0.05); series.add(geneStart + distanceToTSS, -0.05); ((XYSeriesCollection) dataset).addSeries(series); renderer.setSeriesVisible(dataset.getSeriesCount() - 1, false, false); return chart; }
From source file:sanger.team16.gui.genevar.mqtl.gene.RegionalPlot.java
private JFreeChart createChart(String geneChromosome, int geneStart, int distanceToTSS, double threshold, XYDataset dataset) { JFreeChart chart = ChartFactory.createScatterPlot(null, "Position on chromosome " + geneChromosome + " (bp)", "-log10(P)", dataset, PlotOrientation.VERTICAL, true, true, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.WHITE); plot.setDomainGridlinePaint(Color.lightGray); //plot.setRangeGridlinePaint(Color.lightGray); //plot.setRangeCrosshairVisible(true); //NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); //domainAxis.setRange(geneStart - distance, geneStart + distance); //domainAxis.setUpperMargin(1000); //domainAxis.setLowerMargin(1000); //ValueAxis rangeAxis = plot.getRangeAxis(); //rangeAxis.setUpperMargin(dataset.getYValue(0, 0)/5); //rangeAxis.setLowerBound(0); XYItemRenderer renderer = plot.getRenderer(); int size = dataset.getSeriesCount(); for (int i = 0; i < size; i++) { //int scale = (int) Math.round((255 - (255 * dataset.getYValue(i, 0)) / top) / 1.4); //renderer.setSeriesPaint(i, new Color(255, scale, scale)); renderer.setSeriesPaint(i, new Color(50, 205, 50)); renderer.setSeriesShape(i, ShapeUtilities.createDiamond((float) 3)); renderer.setBaseSeriesVisibleInLegend(false); }//w w w. ja va 2 s .c om ValueMarker upperMarker = new ValueMarker(-Math.log10(threshold)); upperMarker.setPaint(Color.gray); //upperMarker.setLabelOffsetType(LengthAdjustmentType.EXPAND); //upperMarker.setLabel("-log10(10E-4)"); //upperMarker.setLabelPaint(Color.red); //upperMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT); //upperMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); float[] f = { 4, 3, 4, 3 }; upperMarker.setStroke(new BasicStroke(1.0f, 1, 1, 0, f, 1.0f)); plot.addRangeMarker(upperMarker); ValueMarker marker = new ValueMarker(0.0); marker.setPaint(Color.lightGray); plot.addRangeMarker(marker); XYSeries series = new XYSeries("Range"); series.add(geneStart - distanceToTSS, -0.05); series.add(geneStart + distanceToTSS, -0.05); ((XYSeriesCollection) dataset).addSeries(series); renderer.setSeriesVisible(dataset.getSeriesCount() - 1, false, false); return chart; }
From source file:org.gumtree.vis.plot1d.Plot1DChartEditor.java
private JPanel createCurvesPanel() { JPanel wrap = new JPanel(new BorderLayout()); JPanel curves = new JPanel(new BorderLayout()); curves.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); JPanel general = new JPanel(new BorderLayout()); general.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "General")); JPanel inner = new JPanel(new LCBLayout(6)); inner.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5)); inner.add(new JLabel("Show Marker")); showMarker = new JCheckBox(); showMarker.setActionCommand(SHOW_MARKER_COMMAND); showMarker.addActionListener(this); inner.add(showMarker);//from w ww.j ava2 s . c om inner.add(new JLabel()); inner.add(new JLabel("Show Error")); showError = new JCheckBox(); showError.setActionCommand(SHOW_ERROR_COMMAND); showError.addActionListener(this); inner.add(showError); inner.add(new JLabel()); general.add(inner, BorderLayout.NORTH); curves.add(general, BorderLayout.NORTH); JPanel individual = new JPanel(new BorderLayout()); individual.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Individual")); JPanel interior = new JPanel(new LCBLayout(6)); interior.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5)); XYDataset dataset = chart.getXYPlot().getDataset(); int numberOfSeries = dataset.getSeriesCount(); String[] seriesNames = new String[numberOfSeries]; currentSeriesIndex = -1; for (int i = 0; i < numberOfSeries; i++) { seriesNames[i] = (String) dataset.getSeriesKey(i); if (seriesNames[i].equals(currentSeriesKey)) { currentSeriesIndex = i; } } if (currentSeriesIndex < 0 && seriesNames.length > 0) { currentSeriesIndex = 0; currentSeriesKey = seriesNames[currentSeriesIndex]; } //Select curve combo this.seriesCombo = new JComboBox(seriesNames); seriesCombo.setActionCommand(CHANGE_CURVE_COMMAND); seriesCombo.addActionListener(this); interior.add(new JLabel("Select Curve")); interior.add(seriesCombo); interior.add(new JLabel("")); interior.add(new JLabel("Curve Stroke")); curveStrokeSample = new StrokeSample(new BasicStroke()); curveStrokeSample.setEnabled(false); interior.add(curveStrokeSample); // JButton button = new JButton(localizationResources.getString("Edit...")); Float[] strokes = new Float[] { 0f, 0.2f, 0.5f, 1f, 1.5f, 2f, 3f }; strokeCombo = new JComboBox(strokes); strokeCombo.setActionCommand(CURVE_STROCK_COMMAND); strokeCombo.addActionListener(this); interior.add(strokeCombo); interior.add(new JLabel("Curve Colour")); curveColorPaint = new PaintSample(chart.getBackgroundPaint()); interior.add(curveColorPaint); JButton button = new JButton(localizationResources.getString("Edit...")); button.setActionCommand(CURVE_COLOR_COMMAND); button.addActionListener(this); interior.add(button); interior.add(new JLabel("Marker Shape")); shapeLabel = new JLabel(); interior.add(shapeLabel); Integer[] shapeIndex = new Integer[MarkerShape.size]; for (int i = 0; i < shapeIndex.length; i++) { shapeIndex[i] = i; } shapeCombo = new JComboBox(shapeIndex); comboRender = new ImageComboRender(); comboRender.setShapes(StaticValues.LOCAL_SHAPE_SERIES); shapeCombo.setRenderer(comboRender); shapeCombo.setMaximumRowCount(7); shapeCombo.setActionCommand(MARKER_SHAPE_COMMAND); shapeCombo.addActionListener(this); interior.add(shapeCombo); interior.add(new JLabel("Marker Filled")); markerFilled = new JCheckBox(); markerFilled.setActionCommand(MARKER_FILLED_COMMAND); markerFilled.addActionListener(this); interior.add(markerFilled); interior.add(new JLabel()); interior.add(new JLabel("Curve Visable")); curveVisable = new JCheckBox(); curveVisable.setActionCommand(CURVE_VISIBLE_COMMAND); curveVisable.addActionListener(this); interior.add(curveVisable); interior.add(new JLabel()); individual.add(interior, BorderLayout.NORTH); curves.add(individual); curves.setName("Curves"); wrap.setName("Curves"); wrap.add(curves, BorderLayout.NORTH); return wrap; }
From source file:org.gumtree.vis.awt.time.TimePlotPanel.java
@Override public void removeTimeSeries(TimeSeries series) { if (series == null) { return;//from ww w . j ava2s .c o m } for (int i = 0; i < getXYPlot().getDatasetCount(); i++) { XYDataset dataset = getXYPlot().getDataset(i); boolean found = false; if (dataset instanceof ITimeSeriesSet) { for (int j = 0; j < dataset.getSeriesCount(); j++) { if (((ITimeSeriesSet) dataset).getSeries(j) == series) { found = true; if (dataset.getSeriesCount() <= 1) { removeTimeSeriesSet((ITimeSeriesSet) dataset); } else { ((ITimeSeriesSet) dataset).removeSeries(series); } break; } } } if (found) { break; } } if (getXYPlot().getDatasetCount() > 0) { getXYPlot().getRangeAxis(0).setVisible(true); } }
From source file:no.met.jtimeseries.chart.ChartPlotter.java
/** Add max min bar. Mainly used to show precipitation that has max and min values * @param timeBase/*from ww w .j a v a 2s .c om*/ * @param title * @param maxMinTimeSeriesEnabler * @param maxColor * @param minColor */ public void addMaxMinPercipitationBars(TimeBase timeBase, String title, NumberPhenomenon max, NumberPhenomenon min, Color maxColor, Color minColor) { XYDataset maxDataset = max.getTimeSeries(title, timeBase); XYDataset minDataset = min.getTimeSeries(title, timeBase); if (maxDataset.getSeriesCount() > 0 && minDataset.getSeriesCount() > 0 && maxDataset.getItemCount(0) > 0 && minDataset.getItemCount(0) > 0) { double margin = 0.2; double maxPrecipitation = max.getMaxValue(); addBarChart(minDataset, "min", minColor, margin, maxPrecipitation); showBarValuesOnBottom(plotIndex - 1, 1D); rangeAxisIndex--; addBarChart(maxDataset, "max", maxColor, margin, maxPrecipitation); showBarValuesOnTop(plotIndex - 1, 6D); plot.getRangeAxis(getRangeAxisIndex() - 1).setVisible(false); final Marker marker = new ValueMarker(0); marker.setPaint(Color.GRAY); marker.setStroke(new BasicStroke(1)); plot.addRangeMarker(getRangeAxisIndex() - 1, marker, Layer.BACKGROUND); } }
From source file:org.gumtree.vis.awt.time.TimePlotPanel.java
@Override public void setSelectedSeries(TimeSeries series) { if (series == null) { selectSeries(null, -1);/*from ww w . j a v a 2 s . com*/ return; } for (int i = 0; i < getXYPlot().getDatasetCount(); i++) { XYDataset dataset = getXYPlot().getDataset(i); boolean found = false; if (dataset != null && dataset instanceof ITimeSeriesSet) { for (int j = 0; j < dataset.getSeriesCount(); j++) { if (((ITimeSeriesSet) dataset).getSeries(j) == series) { found = true; selectSeries((IDataset) dataset, j); break; } } } if (found) { break; } } }
From source file:org.gumtree.vis.awt.time.TimePlotPanel.java
@Override protected void displayPopupMenu(int x, int y) { LegendTitle legend = getChart().getLegend(); if (legend != null) { boolean isVisable = legend.isVisible(); RectangleEdge location = legend.getPosition(); if (isVisable) { if (location.equals(RectangleEdge.BOTTOM)) { legendBottom.setSelected(true); legendNone.setSelected(false); legendRight.setSelected(false); } else if (isVisable && location.equals(RectangleEdge.RIGHT)) { legendRight.setSelected(true); legendNone.setSelected(false); legendBottom.setSelected(false); }//from www . j a va 2s. co m } else { legendNone.setSelected(true); legendRight.setSelected(false); legendBottom.setSelected(false); } } curveManagementMenu.removeAll(); curveResetMenu.removeAll(); if (getXYPlot().getDatasetCount() > 0) { curveManagementMenu.setEnabled(true); curveResetMenu.setEnabled(true); JMenuItem focusNoneCurveItem = new JRadioButtonMenuItem(); focusNoneCurveItem.setText("None"); focusNoneCurveItem.setActionCommand(UNFOCUS_CURVE_COMMAND); focusNoneCurveItem.addActionListener(this); curveManagementMenu.add(focusNoneCurveItem); JMenuItem resetAllCurveItem = new JMenuItem(); resetAllCurveItem.setText("RESET ALL"); resetAllCurveItem.setActionCommand(RESET_ALL_CURVE_COMMAND); resetAllCurveItem.addActionListener(this); curveResetMenu.add(resetAllCurveItem); boolean isCurveFocused = false; for (int j = 0; j < getXYPlot().getDatasetCount(); j++) { XYDataset dataset = getChart().getXYPlot().getDataset(j); if (dataset != null) { for (int i = 0; i < dataset.getSeriesCount(); i++) { String seriesKey = (String) dataset.getSeriesKey(i); JMenuItem focusOnCurveItem = new JRadioButtonMenuItem(); focusOnCurveItem.setText(seriesKey); focusOnCurveItem.setActionCommand(FOCUS_ON_COMMAND + "-" + seriesKey); focusOnCurveItem.addActionListener(this); curveManagementMenu.add(focusOnCurveItem); if (dataset == selectedDataset && i == selectedSeriesIndex) { focusOnCurveItem.setSelected(true); isCurveFocused = true; } JMenuItem resetCurveItem = new JMenuItem(); resetCurveItem.setText("Reset " + seriesKey); resetCurveItem.setActionCommand(RESET_CURVE_COMMAND + "-" + seriesKey); resetCurveItem.addActionListener(this); curveResetMenu.add(resetCurveItem); } } } if (!isCurveFocused) { focusNoneCurveItem.setSelected(true); } } else { curveManagementMenu.setEnabled(false); curveResetMenu.setEnabled(false); } showMultiAxesMenuItem.setSelected(isShowMultiaxes()); if (isPaused) { pauseMenuItem.setText("Paused"); } else { pauseMenuItem.setText("Click to Pause"); } pauseMenuItem.setSelected(isPaused); super.displayPopupMenu(x, y); }
From source file:org.talend.dataprofiler.chart.TOPChartService.java
@Override public int getSeriesCount(Object chart) { XYDataset dataset = ((JFreeChart) chart).getXYPlot().getDataset(); return dataset.getSeriesCount(); }