public void createXYLineChart(final String filename) { XYLineChart chart = new XYLineChart(TITLE, X_AXIS, Y_AXIS); chart.addSeries(SERIE_1, new double[] {1.0, 2.0, 3.0, 4.0, 5.0}, new double[] {1.0, 5.0, 2.0, 3.0, 4.5}); chart.addSeries(SERIE_2, new double[] {1.0, 5.0, 2.0, 4.0, 3.0}, new double[] {2.0, 3.0, 3.0, 1.5, 4.5}); chart.saveAsPng(filename, 800, 600); }
public XYLineChart(final String title, final String xAxisLabel, final String yAxisLabel, boolean isLogarithmicAxis) { super(title, xAxisLabel, yAxisLabel); this.isLogarithmicAxis = isLogarithmicAxis; this.dataset = new XYSeriesCollection(); this.chart = createChart(title, xAxisLabel, yAxisLabel, this.dataset); addDefaultFormatting(); }
chart = new XYLineChart("Average Leg Travel Times Statistics", "iteration", "time"); chart.addSeries(mode, iterations, values); i++; chart.addSeries("overall", iterations, values); chart.addMatsimLogo(); chart.saveAsPng(this.durationsFileName + ".png", 800, 600); chart = new XYLineChart("Number of Trips per Mode Statistics", "iteration", "number of trips"); chart.addSeries(mode, iterations, values); i++; chart.addSeries("overall", iterations, values); chart.addMatsimLogo(); chart.saveAsPng(this.tripsFileName + ".png", 800, 600);
XYLineChart size = new XYLineChart("Paratransit Statistics", "iteration", "operators/routes/fleet size"); XYLineChart scores = new XYLineChart("Paratransit Statistics", "iteration", "score/budget"); XYLineChart passengers = new XYLineChart("Paratransit Statistics", "iteration", "pax"); XYLineChart shares = new XYLineChart("Paratransit Statistics", "iteration", "shares of operators in business"); XYLineChart relaxOperator = new XYLineChart("Paratransit Statistics", "iteration", "average and deviation of operators"); XYLineChart relaxRoutes = new XYLineChart("Paratransit Statistics", "iteration", "average and deviation of routes"); XYLineChart relaxPax = new XYLineChart("Paratransit Statistics", "iteration", "average and deviation of passengers"); XYLineChart relaxVeh = new XYLineChart("Paratransit Statistics", "iteration", "average and deviation of vehicles"); addSeriesToPlot(index, relaxVeh, iterations, INDEX.INDEX_SIGMALOWERPOSVEH.ordinal()); size.addMatsimLogo(); scores.addMatsimLogo(); passengers.addMatsimLogo(); shares.addMatsimLogo(); relaxOperator.addMatsimLogo(); relaxRoutes.addMatsimLogo(); relaxPax.addMatsimLogo(); relaxVeh.addMatsimLogo(); size.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_size.png"), 800, 600); scores.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_score.png"), 800, 600); passengers.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_pax.png"), 800, 600); shares.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_shares.png"), 800, 600); relaxOperator.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_relaxOperators.png"), 800, 600); relaxRoutes.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_relaxRoutes.png"), 800, 600); relaxPax.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_relaxPax.png"), 800, 600); relaxVeh.saveAsPng(event.getServices().getControlerIO().getOutputFilename("pStats_relaxVeh.png"), 800, 600);
private void addSeriesToPlot(int index, XYLineChart xyLineChart, double[] iterations, int series) { double[] values = new double[index + 1]; System.arraycopy(this.history[series], 0, values, 0, index + 1); xyLineChart.addSeries(INDEX.values()[series].enName, iterations, values); }
XYLineChart chart = new XYLineChart("Leg Travel Distance Statistics", "iteration", "average of the average leg distance per plan "); double[] iterations = new double[index + 1]; for (int i = 0; i <= index; i++) { chart.addSeries("executed plan", iterations, values); chart.addMatsimLogo(); chart.saveAsPng(this.fileName + ".png", 800, 600);
XYLineChart chart = new XYLineChart("Mode Statistics", "iteration", "mode"); for ( Entry<String, Map<Integer, Double>> entry : this.modeHistories.entrySet() ) { String mode = entry.getKey() ; chart.addSeries(mode, history ) ; chart.addMatsimLogo(); chart.saveAsPng(this.modeFileName + ".png", 800, 600);
public void createXYLogLogLineChart(final String filename) { XYLineChart chart = new XYLineChart(TITLE, X_AXIS, Y_AXIS, true); chart.addSeries(SERIE_1, new double[] {1.0, 2.0, 3.0, 4.0, 5.0}, new double[] {1.0, 5.0, 2.0, 3.0, 4.5}); chart.addSeries(SERIE_2, new double[] {1.0, 5.0, 2.0, 4.0, 3.0}, new double[] {2.0, 3.0, 3.0, 1.5, 4.5}); chart.saveAsPng(filename, 800, 600); }
XYLineChart chart = new XYLineChart("Score Statistics", "iteration", "score"); double[] iterations = new double[index + 1]; for (int i = 0; i <= index; i++) { chart.addSeries("avg. worst score", iterations, values); System.arraycopy(this.history[INDEX_BEST], 0, values, 0, index + 1); chart.addSeries("avg. best score", iterations, values); System.arraycopy(this.history[INDEX_AVERAGE], 0, values, 0, index + 1); chart.addSeries("avg. of plans' average score", iterations, values); System.arraycopy(this.history[INDEX_EXECUTED], 0, values, 0, index + 1); chart.addSeries("avg. executed score", iterations, values); chart.addMatsimLogo(); chart.saveAsPng(this.fileName + ".png", 800, 600);
log.info("Writing png file..."); XYLineChart chart = new XYLineChart("Iteration " + iteration, "Time of day [hours]", "Average delay [seconds]"); if (!isEmpty) chart.addSeries("Link " + linkId, timeBins, values); chart.saveAsPng(outputPathCongestionInfo + runId + "." + iteration + ".decongestion_delays_perLinkAndTimeBin.png", 800, 600);
private void dropChart( final Id groupId, final History history) { final XYLineChart chart = new XYLineChart( getStatName()+" Statistics for "+groupId, "iteration", getStatName()); chart.addSeries( "avg. minimum "+getStatName(), history.getIterations(), history.getAvgOfMinimums()); chart.addSeries( "avg. max "+getStatName(), history.getIterations(), history.getAvgOfMaximums()); chart.addSeries( "avg. of plans' average "+getStatName(), history.getIterations(), history.getAvgOfAverages()); chart.addSeries( "avg. executed "+getStatName(), history.getIterations(), history.getAvgOfExecuted()); chart.addMatsimLogo(); chart.saveAsPng(this.fileName + "_" + groupId + ".png", 800, 600); }
log.info("Writing png file..."); XYLineChart chart = new XYLineChart("Iteration " + iteration, "Time of day [hours]", "Toll [monetary units]"); if (!isEmpty) chart.addSeries("Link " + linkId, timeBins, values); chart.saveAsPng(outputPathCongestionInfo + runId + "." + iteration + ".decongestion_toll_perLinkAndTimeBin.png", 800, 600);
XYLineChart chart = new XYLineChart("Score Statistics", "iteration", "score"); chart.addSeries("avg. worst score", this.scoreHistory.get( ScoreItem.worst ) ) ; chart.addSeries("avg. best score", this.scoreHistory.get( ScoreItem.best) ); chart.addSeries("avg. of plans' average score", this.scoreHistory.get( ScoreItem.average) ); chart.addSeries("avg. executed score", this.scoreHistory.get( ScoreItem.executed ) ); chart.addMatsimLogo(); chart.saveAsPng(this.fileName + ".png", 800, 600);
); XYLineChart chart1 = new XYLineChart("Total travel time and total delay", "Iteration", "Hours"); double[] iterations1 = new double[event.getIteration() + 1]; double[] values1a = new double[event.getIteration() + 1]; values1b[i] = this.iteration2totalTravelTime.get(i) / 3600.; chart1.addSeries("Total delay", iterations1, values1a); chart1.addSeries("Total travel time", iterations1, values1b); chart1.saveAsPng(outputDirectory + this.congestionInfo.getScenario().getConfig().controler().getRunId() + ".decongestion_travelTime_delay.png", 800, 600); XYLineChart chart2 = new XYLineChart("user benefits and toll revenues", "Iteration", "Monetary units"); double[] iterations2 = new double[event.getIteration() + 1]; double[] values2b = new double[event.getIteration() + 1]; values2c[i] = this.iteration2totalTollPayments.get(i); chart2.addSeries("User benefits", iterations2, values2b); chart2.addSeries("Toll payments (decongestion tolls only)", iterations2, values2c); chart2.saveAsPng(outputDirectory + this.congestionInfo.getScenario().getConfig().controler().getRunId() + ".decongestion_userBenefits_tolls.png", 800, 600);
chart = new XYLineChart("Number of performed Activities", "time", "# activities"); for (String activityType : this.activityCountData.keySet()) { List<ActivityData> list = this.activityCountData.get(activityType); i += 2; chart.addSeries(activityType, times, counts); i += 2; chart.addSeries("overall", times, counts); NumberAxis domainAxis = (NumberAxis) chart.getChart().getXYPlot().getDomainAxis(); domainAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 11)); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); domainAxis.setRange(0, endTime / 3600.0); chart.addMatsimLogo(); String fileName = outputDirectoryHierarchy.getIterationFilename(event.getIteration(), this.activitiesFileName + ".png"); chart.saveAsPng(fileName, 800, 600);
return; XYLineChart chart = new XYLineChart("SlaveHandler Score Statistics", "iteration", "score"); double[] iterations = new double[idx]; values[valuecounter++] = fullhist[i]; chart.addSeries(seriesNames[s], iterations, values); chart.addMatsimLogo(); chart.saveAsPng(controler.getMATSimControler().getControlerIO().getOutputPath() + "/slaveScoreStats.png", 1200, 800);