private static String toLineString(
		final int index,
		final Params<?> params,
		final SampleSummary summary,
		final SampleSummary... summaries
	) {
		return concat(concat(
				Stream.of(params.get(index).toString().split(":")),
				DoubleStream.of(summary.getPoints().get(index).toArray())
					.mapToObj(Double::toString)),
				Stream.of(summaries)
					.flatMapToDouble(s -> DoubleStream.of(s.getPoints().get(index).toArray()))
					.mapToObj(Double::toString))
			.collect(Collectors.joining(" "));
	}
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