public static void main(final String[] arguments) throws Exception {
		final Args args = Args.of(arguments);

		final Path input = args.arg("input")
			.map(Paths::get)
			.map(Path::toAbsolutePath)
			.get();

		final String[] samples = args.arg("samples")
			.map(s -> s.split(","))
			.orElse(new String[]{"Generation", "Fitness"});

		final TrialMeter<String> trial = TrialMeter.read(
			input,
			Reader.text()
		);
		final Params<String> params = trial.getParams();
		final SampleSummary summary = trial.getData(samples[0]).summary();
		final SampleSummary[] summaries = Arrays.stream(samples, 1, samples.length)
			.map(s -> trial.getData(s).summary())
			.toArray(SampleSummary[]::new);

		create(
			input,
			template(input),
			params,
			output(input),
			summary,
			summaries
		);
	}
Create a performance diagram.

@param input the input data
@param template the Gnuplot template to use
@param params the diagram parameters (x-axis)
@param output the output file
@param summary the first summary data
@param summaries the rest of the summary data
@throws IOException if the diagram generation fails
@throws NullPointerException of one of the parameters is {@code null}
@throws IllegalArgumentException if the {@code params}, {@code generation}
        and {@code fitness} doesn't have the same parameter count
jenetics.tool/src/main/java/io/jenetics/tool/evaluation/Diagram.java