@Override public void writeGraphFiles(BenchmarkReport benchmarkReport) { Locale locale = benchmarkReport.getLocale(); NumberAxis xAxis = new NumberAxis("Time spent"); xAxis.setNumberFormatOverride(new MillisecondsSpentNumberFormat(locale)); NumberAxis yAxis = new NumberAxis("Score calculation speed per second"); yAxis.setNumberFormatOverride(NumberFormat.getInstance(locale)); yAxis.setAutoRangeIncludesZero(false); XYPlot plot = new XYPlot(null, xAxis, yAxis, null); plot.setOrientation(PlotOrientation.VERTICAL); int seriesIndex = 0; for (SingleBenchmarkResult singleBenchmarkResult : problemBenchmarkResult.getSingleBenchmarkResultList()) { XYSeries series = new XYSeries(singleBenchmarkResult.getSolverBenchmarkResult().getNameWithFavoriteSuffix()); XYItemRenderer renderer = new XYLineAndShapeRenderer(); if (singleBenchmarkResult.hasAllSuccess()) { long timeMillisSpent = point.getTimeMillisSpent(); long scoreCalculationSpeed = point.getScoreCalculationSpeed(); series.add(timeMillisSpent, scoreCalculationSpeed); plot.setDataset(seriesIndex, new XYSeriesCollection(series)); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); plot.setRenderer(seriesIndex, renderer); seriesIndex++;
k -> new XYSeries(point.getConstraintName() + " weight")); if (levelValues[i] != ((weightSeries.getItemCount() == 0) ? 0.0 : weightSeries.getY(weightSeries.getItemCount() - 1).doubleValue())) { weightSeries.add(timeMillisSpent, levelValues[i]); for (Iterator<Map.Entry<String, XYSeries>> it = constraintIdToWeightSeriesMap.entrySet().iterator(); it.hasNext(); ) { XYSeries weightSeries = it.next().getValue(); if (weightSeries.getItemCount() == 0) { weightSeries.add(timeMillisSpent, weightSeries.getY(weightSeries.getItemCount() - 1).doubleValue()); plot.setRenderer(renderer); XYSeriesCollection seriesCollection = new XYSeriesCollection(); for (XYSeries series : constraintIdToWeightSeriesMapList.get(scoreLevelIndex).values()) { seriesCollection.addSeries(series); plot.setDataset(seriesCollection); String scoreLevelLabel = subSingleBenchmarkResult.getSingleBenchmarkResult().getProblemBenchmarkResult() .findScoreLevelLabel(scoreLevelIndex); JFreeChart chart = new JFreeChart(subSingleBenchmarkResult.getName() + " constraint match total step " + scoreLevelLabel + " diff statistic", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
private XYPlot createPeriodCostPlot(TangoColorFactory tangoColorFactory, CheapTimeSolution solution) { XYSeries series = new XYSeries("Power price"); for (PeriodPowerPrice periodPowerPrice : solution.getPeriodPowerPriceList()) { series.add((double) periodPowerPrice.getPowerPriceMicros() / 1000000.0, periodPowerPrice.getPeriod()); } XYSeriesCollection seriesCollection = new XYSeriesCollection(); seriesCollection.addSeries(series); XYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES); renderer.setSeriesPaint(0, TangoColorFactory.ORANGE_1); renderer.setSeriesShape(0, ShapeUtilities.createDiamond(2.0F)); NumberAxis domainAxis = new NumberAxis("Power price"); return new XYPlot(seriesCollection, domainAxis, null, renderer); }
PlotOrientation.VERTICAL, true, true, false); Shape cross = ShapeUtilities.createDiagonalCross(3, 1); XYPlot xyPlot = (XYPlot) jfreechart.getPlot(); xyPlot.setDomainCrosshairVisible(true); xyPlot.setRangeCrosshairVisible(true); XYItemRenderer renderer = xyPlot.getRenderer(); renderer.setSeriesShape(0, cross); renderer.setSeriesPaint(0, Color.red); return new ChartPanel(jfreechart); int rows = 20; double[][] values = new double[cols][rows]; XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); XYSeries series = new XYSeries("Random"); Random rand = new Random(); for (int i = 0; i < values.length; i++) { double x = rand.nextGaussian(); double y = rand.nextGaussian(); series.add(x, y); xySeriesCollection.addSeries(series); return xySeriesCollection;
static JFreeChart getGraphic(final LegHistogram.DataFrame dataFrame, final String mode, int iteration) { final XYSeriesCollection xyData = new XYSeriesCollection(); final XYSeries departuresSerie = new XYSeries("departures", false, true); final XYSeries arrivalsSerie = new XYSeries("arrivals", false, true); final XYSeries onRouteSerie = new XYSeries("en route", false, true); int onRoute = 0; for (int i = 0; i < dataFrame.countsDep.length; i++) { onRoute = onRoute + dataFrame.countsDep[i] - dataFrame.countsArr[i] - dataFrame.countsStuck[i]; double hour = i*dataFrame.binSize / 60.0 / 60.0; departuresSerie.add(hour, dataFrame.countsDep[i]); arrivalsSerie.add(hour, dataFrame.countsArr[i]); onRouteSerie.add(hour, onRoute); xyData.addSeries(departuresSerie); xyData.addSeries(arrivalsSerie); xyData.addSeries(onRouteSerie); ); XYPlot plot = chart.getXYPlot(); plot.setDomainAxis(new NumberAxis("time")); plot.getRenderer().setSeriesStroke(0, new BasicStroke(2.0f)); plot.getRenderer().setSeriesStroke(1, new BasicStroke(2.0f)); plot.getRenderer().setSeriesStroke(2, new BasicStroke(2.0f)); plot.setBackgroundPaint(Color.white); plot.setRangeGridlinePaint(Color.gray);
"Scatter Plot Demo", "X", "Y", samplexydataset(), PlotOrientation.VERTICAL, true, true, false); XYPlot xyPlot = (XYPlot) jfreechart.getPlot(); xyPlot.setDomainCrosshairVisible(true); xyPlot.setRangeCrosshairVisible(true); XYItemRenderer renderer = xyPlot.getRenderer(); renderer.setSeriesPaint(0, Color.blue); NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis(); domain.setVerticalTickLabels(true); return new ChartPanel(jfreechart); int cols = 20; int rows = 20; XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); XYSeries series = new XYSeries("Random"); Random rand = new Random(); for (int i = 0; i < rows; i++) { double x = rand.nextGaussian(); double y = rand.nextGaussian(); series.add(x, y); xySeriesCollection.addSeries(series); return xySeriesCollection;
private static final String title = "Scatter Add Demo"; private static final Random rand = new Random(); private XYSeries added = new XYSeries("Added"); public void actionPerformed(ActionEvent e) { for (int i = 0; i < N; i++) { added.add(rand.nextDouble(), rand.nextDouble()); XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); XYSeries series = new XYSeries("Random"); for (int i = 0; i < N * N; i++) { double x = rand.nextDouble(); double y = rand.nextDouble(); series.add(x, y); xySeriesCollection.addSeries(series); xySeriesCollection.addSeries(added); return xySeriesCollection;
/** * Creates a float[] time-series */ public XYDataset createDataset(Float[] ds, String label) { XYSeries observations = new XYSeries(label); int n = ds.length; for (int i = 0; i < n; i++) { observations.add(i, ds[i]); } XYSeriesCollection collection = new XYSeriesCollection(); collection.addSeries(observations); return collection; }
XYSeries dataset = new XYSeries("Series"); for (int i = 0; i < tsData.length; i++) { dataset.add(i, (float) tsData[i]); XYSeriesCollection chartXYSeriesCollection = new XYSeriesCollection(dataset); XYSeries dot = new XYSeries("Dot"); dot.add((float) redDot, 0.0f); chartXYSeriesCollection.addSeries(dot); NumberAxis timeAxis = new NumberAxis(); timeAxis.setLabel("Time"); NumberAxis valueAxis = new NumberAxis("Values"); valueAxis.setAutoRangeIncludesZero(false); valueAxis.setLabel("Values"); XYPlot timeseriesPlot = new XYPlot(chartXYSeriesCollection, timeAxis, valueAxis, xyRenderer); JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, timeseriesPlot, false); BufferedImage objBufferedImage = chart.createBufferedImage(800, 400); ByteArrayOutputStream bas = new ByteArrayOutputStream(); try {
private static final String title = "Scatter Shape Demo"; private static final Random rand = new Random(); private final XYSeries series = new XYSeries("Data"); title, "X", "Y", createSampleData(), PlotOrientation.VERTICAL, true, true, false); XYPlot xyPlot = (XYPlot) chart.getPlot(); xyPlot.setDomainCrosshairVisible(true); xyPlot.setRangeCrosshairVisible(true); xyPlot.setRenderer(new XYLineAndShapeRenderer(false, true) { axis.setRange(-3.0, 3.0); axis.setTickUnit(new NumberTickUnit(0.5)); axis.setVerticalTickLabels(vertical); XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); for (int i = 0; i < N * N; i++) { series.add(rand.nextGaussian(), rand.nextGaussian()); xySeriesCollection.addSeries(series); return xySeriesCollection;
XYSeries series1 = new XYSeries("series1"); XYSeries series2 = new XYSeries("series2"); series1.add(1000, 1000); series1.add(1150, 1150); series1.add(1250, 1250); series2.add(1000, 111250); series2.add(1150, 211250); series2.add(1250, 311250); XYSeriesCollection dataset1 = new XYSeriesCollection(); XYSeriesCollection dataset2 = new XYSeriesCollection(); dataset1.addSeries(series1); dataset2.addSeries(series2); XYPlot plot = new XYPlot(); plot.setDataset(0, dataset1); plot.setDataset(1, dataset2); splinerenderer.setSeriesFillPaint(0, Color.BLUE); plot.setRenderer(1, splinerenderer); plot.setRangeAxis(0, new NumberAxis("Series 1")); plot.setRangeAxis(1, new NumberAxis("Series 2")); plot.setDomainAxis(new NumberAxis("X Axis")); chart.setBackgroundPaint(Color.WHITE); JPanel chartPanel = new ChartPanel(chart);
private static final String title = "Scatter Move Demo"; private static final Random rand = new Random(); private XYSeries moved = new XYSeries("Population"); @Override public void actionPerformed(ActionEvent e) { moved.clear(); update(); moved.add(new XYDataItem(rand.nextGaussian(), rand.nextGaussian())); title, "X", "Y", createSampleData(), PlotOrientation.VERTICAL, true, true, false); XYPlot xyPlot = (XYPlot) jfreechart.getPlot(); XYItemRenderer renderer = xyPlot.getRenderer(); NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis(); domain.setRange(-3.0, 3.0); domain.setTickUnit(new NumberTickUnit(1)); NumberAxis range = (NumberAxis) xyPlot.getRangeAxis(); range.setRange(-3.0, 3.0); range.setTickUnit(new NumberTickUnit(1)); return new ChartPanel(jfreechart){ XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); xySeriesCollection.addSeries(moved); return xySeriesCollection;
public JFreeChart makeChart() { JFreeChart chart; XYSeriesCollection lineDataset = new XYSeriesCollection(); for (int i = 0; i < getSeriesNum(); i++) { lineDataset.addSeries(new XYSeries(new Integer(i))); } chart = ChartFactory.createXYLineChart("", "", "", lineDataset, PlotOrientation.VERTICAL, false, false, false); XYItemRenderer r = chart.getXYPlot().getRenderer(); for (int i = 0; i < getSeriesNum(); i++) { //int colorValue = Color.HSBtoRGB(i*17/240f, 1f,0.5f); int colorValue = Color.HSBtoRGB(((float) i) / getSeriesNum(), 1f, 0.5f); Color color = new Color(colorValue); r.setSeriesPaint(i, color); r.setSeriesStroke(i, new BasicStroke(2f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); } NumberAxis rangeAxis = (NumberAxis) chart.getXYPlot().getRangeAxis(); rangeAxis.setNumberFormatOverride(new DecimalFormat("######.###")); NumberAxis domainAxis = (NumberAxis) chart.getXYPlot().getDomainAxis(); if (autoRange) { rangeAxis.setAutoRange(true); domainAxis.setAutoRange(true); } else { domainAxis.setRange(xMin, xMax); rangeAxis.setRange(yMin, yMax); } return chart; }
XYSeriesCollection dataset2 = createXYDatasetGauss(horizontal); NumberAxis xAxis = new NumberAxis(getValueString()); xAxis.setAutoRangeIncludesZero(false); NumberAxis yAxis = new NumberAxis(); yAxis.setAutoRangeIncludesZero(true); XYPlot plot = new XYPlot(datasetDistribution, xAxis, yAxis, renderer); plot.setOrientation(horizontal ? PlotOrientation.HORIZONTAL : PlotOrientation.VERTICAL); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, isGrouping()); chart.setBackgroundPaint((Paint) UIManager.get("Panel.background")); plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); StandardXYItemLabelGenerator itemlabels = new StandardXYItemLabelGenerator(); for (int j = 0; j < dataset2.getSeriesCount(); j++) { XYSeries s = dataset2.getSeries(j); if (s.getKey().equals(groupName)) { renderer2.setSeriesPaint(j, c); renderer2.setSeriesShapesVisible(j, false); yAxis.setAutoRange(true); xAxis.setRange(leftValue(0), rightValue(numberOfCategories - 1)); chart.setTextAntiAlias(false); return chart;
try { XYSeries series = new XYSeries("Position"); List<String> lines = FileUtils.readLines(inFile); for (String line : lines) { String x = st.nextToken(); String y = st.nextToken(); series.add(Double.valueOf(x.trim()), Double.valueOf(y.trim())); XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series); false, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setNoDataMessage("NO DATA"); NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis(); domainAxis.setAutoRangeIncludesZero(false); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRangeIncludesZero(false); ImageIO.write(chart.createBufferedImage(600, 480), "png", outFile);
XYSeriesCollection dataset = new XYSeriesCollection(); int count = 0; TreeMap<String, XYSeries> map = new TreeMap<String, XYSeries>(); XYSeries pop = map.get(groupName); if (pop == null) { pop = new XYSeries(groupName); map.put(groupName, pop); pop.add(++count, num.doubleValue()); dataset.addSeries(it.next()); JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, isGrouping()); String groupName = it.next(); Color c = ChartCategories.getColor(i); for (int j = 0; j < dataset.getSeriesCount(); j++) { XYSeries s = dataset.getSeries(j); if (s.getKey().equals(groupName)) { renderer6.setSeriesPaint(j, c); renderer6.setSeriesPaint(0, ChartCategories.getColor(0)); chart.setTextAntiAlias(false); return chart;
private void writeTravelTimeValidation(String folder, List<CarTrip> trips){ BufferedWriter bw = IOUtils.getBufferedWriter(folder+"/validated_trips.csv"); XYSeriesCollection times = new XYSeriesCollection(); XYSeriesCollection distances = new XYSeriesCollection(); XYSeries distancess = new XYSeries("distances", true, true); XYSeries timess = new XYSeries("times", true, true); times.addSeries(timess); distances.addSeries(distancess); try { bw.newLine(); bw.append(trip.toString()); timess.add(trip.getActualTravelTime(), trip.getValidatedTravelTime()); distancess.add(trip.getTravelledDistance(),trip.getValidatedTravelDistance()); NumberAxis yAxis = (NumberAxis)((XYPlot)chart2.getPlot()).getRangeAxis(); NumberAxis xAxis = (NumberAxis)((XYPlot)chart2.getPlot()).getDomainAxis(); NumberAxis yAxisd = (NumberAxis)((XYPlot)chart.getPlot()).getRangeAxis(); NumberAxis xAxisd = (NumberAxis)((XYPlot)chart.getPlot()).getDomainAxis(); yAxisd.setUpperBound(xAxisd.getUpperBound()); yAxis.setUpperBound(xAxis.getUpperBound()); yAxis.setTickUnit(new NumberTickUnit(500)); xAxis.setTickUnit(new NumberTickUnit(500));
for (int i = 0; i < levelValues.length && i < BenchmarkReport.CHARTED_SCORE_LEVEL_SIZE; i++) { if (i >= seriesList.size()) { seriesList.add(new XYSeries( singleBenchmarkResult.getSolverBenchmarkResult().getNameWithFavoriteSuffix())); seriesList.get(i).add(timeMillisSpent, levelValues[i]); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); plotList.add(createPlot(benchmarkReport, i)); plotList.get(i).setDataset(seriesIndex, new XYSeriesCollection(seriesList.get(i))); plotList.get(i).setRenderer(seriesIndex, renderer); for (int scoreLevelIndex = 0; scoreLevelIndex < plotList.size(); scoreLevelIndex++) { String scoreLevelLabel = problemBenchmarkResult.findScoreLevelLabel(scoreLevelIndex); JFreeChart chart = new JFreeChart( problemBenchmarkResult.getName() + " step " + scoreLevelLabel + " statistic", JFreeChart.DEFAULT_TITLE_FONT, plotList.get(scoreLevelIndex), true);
title, "Elapsed Time (secs)", "Response Time (secs)", createDataset(), PlotOrientation.VERTICAL, true, true, false); XYPlot plot = chart.getXYPlot(); MyRenderer renderer = new MyRenderer(true, true, N); plot.setRenderer(renderer); renderer.setSeriesShape(0, circle); renderer.setSeriesPaint(0, line); renderer.setUseOutlinePaint(true); renderer.setSeriesOutlinePaint(0, line); ValueAxis range = plot.getRangeAxis(); range.setLowerBound(0.5); return new ChartPanel(chart); XYSeriesCollection result = new XYSeriesCollection(); XYSeries series = new XYSeries("Series 1"); for (double x = 0; x < N - 1; x++) { series.add(x, f(x)); series.add(25, 1.75); // outlier result.addSeries(series); return result;
XYSeries dataset = new XYSeries("Series"); for (int i = 0; i < tsData.length; i++) { dataset.add(i, (float) tsData[i]); chartXYSeriesCollection = new XYSeriesCollection(dataset); NumberAxis timeAxis = new NumberAxis("Time. (zoom: select with mouse; panning: Ctrl+mouse)"); NumberAxis valueAxis = new NumberAxis("Values"); valueAxis.setAutoRangeIncludesZero(false); this.timeseriesPlot = new XYPlot(chartXYSeriesCollection, timeAxis, valueAxis, xyRenderer); this.timeseriesPlot.setDomainPannable(true); this.timeseriesPlot.setRangePannable(true); this.chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, timeseriesPlot, false); this.chart.addProgressListener(this); this.chart.setNotify(true);