List of usage examples for org.jfree.data.xy YIntervalSeriesCollection addSeries
public void addSeries(YIntervalSeries series)
From source file:org.jfree.data.xy.junit.YIntervalSeriesCollectionTest.java
/** * Confirm that the equals method can distinguish all the required fields. *///from ww w.j a va2 s. c om public void testEquals() { YIntervalSeriesCollection c1 = new YIntervalSeriesCollection(); YIntervalSeriesCollection c2 = new YIntervalSeriesCollection(); assertEquals(c1, c2); // add a series YIntervalSeries s1 = new YIntervalSeries("Series"); s1.add(1.0, 1.1, 1.2, 1.3); c1.addSeries(s1); assertFalse(c1.equals(c2)); YIntervalSeries s2 = new YIntervalSeries("Series"); s2.add(1.0, 1.1, 1.2, 1.3); c2.addSeries(s2); assertTrue(c1.equals(c2)); // add an empty series c1.addSeries(new YIntervalSeries("Empty Series")); assertFalse(c1.equals(c2)); c2.addSeries(new YIntervalSeries("Empty Series")); assertTrue(c1.equals(c2)); }
From source file:com.att.aro.main.PacketPlots.java
/** * Creates the XYIntervalSeries for the uplink and downlink packets plot. * // w w w. ja v a 2 s .com * @param plot * The XYPlot for the uplink/downlink plots. * @param dataset * The uplink/downlink datasets. */ private void populatePacketPlot(XYPlot plot, LinkedHashMap<Color, PacketSeries> dataset) { // Create the XY data set YIntervalSeriesCollection coll = new YIntervalSeriesCollection(); XYItemRenderer renderer = plot.getRenderer(); for (PacketSeries series : dataset.values()) { coll.addSeries(series); renderer.setSeriesPaint(coll.indexOf(series.getKey()), series.getColor()); } // Create tooltip generator renderer.setBaseToolTipGenerator(new PacketToolTipGenerator()); plot.setDataset(coll); }
From source file:org.btrg.df.betterologist.swingui.ProjectJobSchedulingPanel.java
private JFreeChart createChart(Schedule schedule) { YIntervalSeriesCollection seriesCollection = new YIntervalSeriesCollection(); Map<Project, YIntervalSeries> projectSeriesMap = new LinkedHashMap<Project, YIntervalSeries>( schedule.getProjectList().size()); YIntervalRenderer renderer = new YIntervalRenderer(); int maximumEndDate = 0; int seriesIndex = 0; for (Project project : schedule.getProjectList()) { YIntervalSeries projectSeries = new YIntervalSeries(project.getLabel()); seriesCollection.addSeries(projectSeries); projectSeriesMap.put(project, projectSeries); renderer.setSeriesShape(seriesIndex, new Rectangle()); renderer.setSeriesStroke(seriesIndex, new BasicStroke(3.0f)); seriesIndex++;/*from ww w. j av a 2 s.c om*/ } for (Allocation allocation : schedule.getAllocationList()) { int startDate = allocation.getStartDate(); int endDate = allocation.getEndDate(); YIntervalSeries projectSeries = projectSeriesMap.get(allocation.getProject()); projectSeries.add(allocation.getId(), (startDate + endDate) / 2.0, startDate, endDate); maximumEndDate = Math.max(maximumEndDate, endDate); } NumberAxis domainAxis = new NumberAxis("Job"); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); domainAxis.setRange(-0.5, schedule.getAllocationList().size() - 0.5); domainAxis.setInverted(true); NumberAxis rangeAxis = new NumberAxis("Day (start to end date)"); rangeAxis.setRange(-0.5, maximumEndDate + 0.5); XYPlot plot = new XYPlot(seriesCollection, domainAxis, rangeAxis, renderer); plot.setOrientation(PlotOrientation.HORIZONTAL); return new JFreeChart("Project Job Scheduling", JFreeChart.DEFAULT_TITLE_FONT, plot, true); }
From source file:com.spotify.heroic.http.render.RenderUtils.java
public static JFreeChart createChart(final List<ShardedResultGroup> groups, final String title, Map<String, String> highlight, Double threshold, int height) { final XYLineAndShapeRenderer lineAndShapeRenderer = new XYLineAndShapeRenderer(true, true); final DeviationRenderer intervalRenderer = new DeviationRenderer(); final XYSeriesCollection regularData = new XYSeriesCollection(); final YIntervalSeriesCollection intervalData = new YIntervalSeriesCollection(); int lineAndShapeCount = 0; int intervalCount = 0; for (final ShardedResultGroup resultGroup : groups) { final MetricCollection group = resultGroup.getMetrics(); if (group.getType() == MetricType.POINT) { final XYSeries series = new XYSeries(resultGroup.getMetrics().toString()); final List<Point> data = group.getDataAs(Point.class); for (final Point d : data) { series.add(d.getTimestamp(), d.getValue()); }/*from www . jav a 2s . c o m*/ lineAndShapeRenderer.setSeriesPaint(lineAndShapeCount, Color.BLUE); lineAndShapeRenderer.setSeriesShapesVisible(lineAndShapeCount, false); lineAndShapeRenderer.setSeriesStroke(lineAndShapeCount, new BasicStroke(2.0f)); regularData.addSeries(series); ++lineAndShapeCount; } if (group.getType() == MetricType.SPREAD) { final YIntervalSeries series = new YIntervalSeries(resultGroup.getMetrics().toString()); final List<Spread> data = group.getDataAs(Spread.class); for (final Spread d : data) { series.add(d.getTimestamp(), d.getSum() / d.getCount(), d.getMin(), d.getMax()); } intervalRenderer.setSeriesPaint(intervalCount, Color.GREEN); intervalRenderer.setSeriesStroke(intervalCount, new BasicStroke(2.0f)); intervalRenderer.setSeriesFillPaint(intervalCount, new Color(200, 255, 200)); intervalRenderer.setSeriesShapesVisible(intervalCount, false); intervalData.addSeries(series); ++intervalCount; } } final JFreeChart chart = buildChart(title, regularData, intervalData, lineAndShapeRenderer, intervalRenderer); chart.setAntiAlias(true); chart.setBackgroundPaint(Color.WHITE); final XYPlot plot = chart.getXYPlot(); plot.setBackgroundPaint(Color.WHITE); plot.setDomainGridlinePaint(Color.BLACK); plot.setRangeGridlinePaint(Color.BLACK); if (threshold != null) { final ValueMarker marker = new ValueMarker(threshold, Color.RED, new BasicStroke(Math.max(Math.min(height / 20, 6), 1)), Color.RED, null, 0.5f); plot.addRangeMarker(marker); } plot.setRenderer(lineAndShapeRenderer); // final DateAxis rangeAxis = (DateAxis) plot.getRangeAxis(); // rangeAxis.setStandardTickUnits(DateAxis.createStandardDateTickUnits()); return chart; }
From source file:projects.wdlf47tuc.ProcessAllSwathcal.java
/** * Computes the luminosity function for the current boxed region and plots it in a JFrame. * Also prints out the coordinates of the selection box vertices and the luminosity function * quantities./* w w w .j av a 2 s .co m*/ * * @param sources * The {@link Source}s to compute the luminosity function for. */ private void computeAndPlotLuminosityFunction(List<Source> sources) { // Print out coordinates of selection box corners System.out.println("# Coordinates of selection box corners:"); System.out.println("# (" + col1Filter + "-" + col2Filter + ")\t" + magFilter); for (double[] point : points) { System.out.println("# " + point[0] + "\t" + point[1]); } System.out.println("# Luminosity function:"); System.out.println("# Mag.\tN\tsigN"); double magBinWidth = 0.5; // Get the range of the data double mMin = Double.MAX_VALUE; double mMax = -Double.MAX_VALUE; for (Source source : sources) { double mag = source.getMag(magFilter) - mu; mMin = Math.min(mMin, mag); mMax = Math.max(mMax, mag); } // Quantize this to a whole number mMin = Math.floor(mMin); mMax = Math.ceil(mMax); int nBins = (int) Math.rint((mMax - mMin) / magBinWidth); // Array to accumulate all objects in each bin int[] n = new int[nBins]; for (Source source : sources) { double mag = source.getMag(magFilter) - mu; // Bin number int bin = (int) Math.floor((mag - mMin) / magBinWidth); n[bin]++; } YIntervalSeries luminosityFunction = new YIntervalSeries("Luminosity Function"); for (int i = 0; i < nBins; i++) { // Bin centre double x = mMin + i * magBinWidth + 0.5 * magBinWidth; double y = n[i]; double yErr = n[i] > 0 ? Math.sqrt(y) : 0; luminosityFunction.add(x, y, y - yErr, y + yErr); System.out.println(x + "\t" + y + "\t" + yErr); } final YIntervalSeriesCollection data = new YIntervalSeriesCollection(); data.addSeries(luminosityFunction); XYErrorRenderer renderer = new XYErrorRenderer(); renderer.setSeriesLinesVisible(0, true); renderer.setSeriesShapesVisible(0, true); renderer.setSeriesShape(0, new Ellipse2D.Float(-1f, -1f, 2, 2)); renderer.setSeriesPaint(0, ChartColor.BLACK); NumberAxis xAxis = new NumberAxis("Absolute Magnitude (" + magFilter.toString() + ")"); xAxis.setAutoRange(true); xAxis.setAutoRangeIncludesZero(false); NumberAxis yAxis = new NumberAxis("N"); yAxis.setAutoRange(true); yAxis.setAutoRangeIncludesZero(true); // Configure plot XYPlot xyplot = new XYPlot(data, xAxis, yAxis, renderer); xyplot.setBackgroundPaint(Color.lightGray); xyplot.setDomainGridlinePaint(Color.white); xyplot.setDomainGridlinesVisible(true); xyplot.setRangeGridlinePaint(Color.white); // Configure chart JFreeChart chart = new JFreeChart("Luminosity Function", xyplot); chart.setBackgroundPaint(Color.white); chart.setTitle("47 Tuc luminosity function"); chart.removeLegend(); final ChartPanel lfChartPanel = new ChartPanel(chart); java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame tester = new JFrame(); tester.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); tester.setLayout(new BorderLayout()); tester.add(lfChartPanel, BorderLayout.CENTER); tester.pack(); tester.setVisible(true); } }); }
From source file:de.tud.kom.p2psim.impl.skynet.visualization.MetricsPlot.java
private void updateChartPanel(String plotTitle) { XYPlot plot = (XYPlot) chart.getPlot(); YIntervalSeriesCollection dataset = new YIntervalSeriesCollection();// (YIntervalSeriesCollection) // plot.getDataset() String[] names = displayedSeries.keySet().toArray(new String[displayedSeries.keySet().size()]); Arrays.sort(names, null);// w ww.ja v a 2 s . c om if (!autoScrolling && displayedSeries.get(names[0]).getDataSeries().getItemCount() == displayedSeries .get(names[0]).getDataSeries().getMaximumItemCount()) { autoScrolling = true; DateAxis domain = (DateAxis) plot.getDomainAxis(); domain.setAutoRange(true); plot.setDomainAxis(domain); } for (int i = 0; i < names.length; i++) { if (names[i].startsWith("Min_")) { if (showMin) dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } else if (names[i].startsWith("Max_")) { if (showMax) dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } else { dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } } plot.setDataset(dataset); plot.setRenderer(configureRendererForDataSet(plot.getRenderer(), dataset)); plotPanel.setChart(chart); setSizeOfComponent(plotPanel, new Dimension(plotWidth, plotHeight)); container.add(plotPanel, BorderLayout.CENTER); setSizeOfComponent(container, new Dimension(plotWidth, plotHeight + boxOffset)); }
From source file:lu.lippmann.cdb.common.gui.ts.TimeSeriesChartUtil.java
private static void fillWithSingleAxisInterval(final Instances dataSet, final int dateIdx, final YIntervalSeriesCollection tsDataset, final double deviation, final int deviatedAttrIdx) { final int numInstances = dataSet.numInstances(); for (final Integer i : WekaDataStatsUtil.getNumericAttributesIndexes(dataSet)) { if (dataSet.attributeStats(i).missingCount == dataSet.numInstances()) { System.out.println("TimeSeriesChartUtil: Only missing values for '" + dataSet.attribute(i).name() + "', so skip it!"); continue; }/* w w w . j a v a 2s . c om*/ final YIntervalSeries ts = new YIntervalSeries(dataSet.attribute(i).name()); for (int k = 0; k < numInstances; k++) { final Instance instancek = dataSet.instance(k); final long timeInMilliSec = (long) instancek.value(dateIdx); if (instancek.isMissing(i)) { //ts.add(timeInMilliSec,null,0d,0d); } else { if (i == deviatedAttrIdx && k > 0 && k < (numInstances - 1)) { System.out.println(numInstances + " " + k + " " + instancek.value(i) + " " + (instancek.value(i) - deviation) + " " + (instancek.value(i) + deviation)); ts.add(timeInMilliSec, instancek.value(i), instancek.value(i) - deviation, instancek.value(i) + deviation); } else { ts.add(timeInMilliSec, instancek.value(i), instancek.value(i), instancek.value(i)); } //System.out.println(instancek.value(i)+" "+(instancek.value(i)-deviation)+" "+(instancek.value(i)+deviation)); } } if (!ts.isEmpty()) tsDataset.addSeries(ts); } }
From source file:org.peerfact.impl.service.aggregation.skyeye.visualization.MetricsPlot.java
private void updateChartPanel(String plotTitle) { XYPlot plot = (XYPlot) chart.getPlot(); YIntervalSeriesCollection dataset = new YIntervalSeriesCollection();// (YIntervalSeriesCollection) // plot.getDataset() String[] names = displayedSeries.keySet().toArray(new String[displayedSeries.keySet().size()]); Arrays.sort(names, null);//from w ww . j a va 2 s.c om if (!autoScrolling && displayedSeries.get(names[0]).getDataSeries().getItemCount() == displayedSeries .get(names[0]).getDataSeries().getMaximumItemCount()) { autoScrolling = true; DateAxis domain = (DateAxis) plot.getDomainAxis(); domain.setAutoRange(true); plot.setDomainAxis(domain); } for (int i = 0; i < names.length; i++) { if (names[i].startsWith("Min_")) { if (showMin) { dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } } else if (names[i].startsWith("Max_")) { if (showMax) { dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } } else { dataset.addSeries(displayedSeries.get(names[i]).getDataSeries()); } } plot.setDataset(dataset); plot.setRenderer(configureRendererForDataSet(plot.getRenderer(), dataset)); plotPanel.setChart(chart); setSizeOfComponent(plotPanel, new Dimension(plotWidth, plotHeight)); container.add(plotPanel, BorderLayout.CENTER); setSizeOfComponent(container, new Dimension(plotWidth, plotHeight + boxOffset)); }
From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java
private XYDataset createFunctionDataSet(Plotable plotable, String id, double minX, double maxX) throws ParseException, UnitException { double[][] points = plotable.getFunctionPoints(varX, varY, minX, maxX); if (points == null) { return null; }//from ww w . j a v a2s .c o m double[][] functionErrors = null; if (showConfidence || showPrediction) { functionErrors = plotable.getFunctionErrors(varX, varY, minX, maxX, showPrediction); } if (functionErrors != null) { YIntervalSeriesCollection functionDataset = new YIntervalSeriesCollection(); YIntervalSeries series = new YIntervalSeries(legend.get(id)); for (int j = 0; j < points[0].length; j++) { double error = Double.isNaN(functionErrors[1][j]) ? 0.0 : functionErrors[1][j]; series.add(points[0][j], points[1][j], points[1][j] - error, points[1][j] + error); } functionDataset.addSeries(series); return functionDataset; } else { DefaultXYDataset dataSet = new DefaultXYDataset(); dataSet.addSeries(legend.get(id), points); return dataSet; } }
From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java
private List<XYDataset> createStrictFunctionDataSets(Plotable plotable, String id, double minX, double maxX) throws ParseException, UnitException { List<XYDataset> dataSets = new ArrayList<>(); for (Map<String, Integer> choiceMap : plotable.getAllChoices(varX.getName())) { double[][] modelPoints = plotable.getFunctionPoints(varX, varY, minX, maxX, choiceMap); if (modelPoints == null) { dataSets.add(null);/*w w w .ja v a 2 s . co m*/ continue; } double[][] modelErrors = null; if (showConfidence || showPrediction) { modelErrors = plotable.getFunctionErrors(varX, varY, minX, maxX, showPrediction, choiceMap); } StringBuilder addLegend = new StringBuilder(); for (Map.Entry<String, Integer> entry : choiceMap.entrySet()) { if (!entry.getKey().equals(varX.getName())) { Double value = plotable.getVariables().get(entry.getKey()).get(entry.getValue()); if (value != null) { String s = NumberFormat.getInstance(Locale.US).format(value); addLegend.append(" (" + entry.getKey() + "=" + s + ")"); } } } if (modelErrors != null) { YIntervalSeriesCollection dataSet = new YIntervalSeriesCollection(); YIntervalSeries series = new YIntervalSeries(legend.get(id)); for (int j = 0; j < modelPoints[0].length; j++) { double error = Double.isNaN(modelErrors[1][j]) ? 0.0 : modelErrors[1][j]; series.add(modelPoints[0][j], modelPoints[1][j], modelPoints[1][j] - error, modelPoints[1][j] + error); } dataSet.addSeries(series); dataSets.add(dataSet); } else { DefaultXYDataset dataSet = new DefaultXYDataset(); dataSet.addSeries(legend.get(id) + addLegend, modelPoints); dataSets.add(dataSet); } } return dataSets; }