From 1d8f31808e7d3b362d76d115b907673e1b2f0d06 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 1 May 2018 08:07:04 +0200 Subject: [PATCH] draw labels for x2 axis only if necessary - added tics every 5 percentage points --- .../pdb/plot/api/AggregateHandler.java | 10 ++++-- .../pdb/plot/api/PercentileAggregate.java | 36 ++++++++----------- .../recommind/logs/GnuplotFileGenerator.java | 5 --- 3 files changed, 22 insertions(+), 29 deletions(-) diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/AggregateHandler.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/AggregateHandler.java index 8bf835f..851ebe1 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/AggregateHandler.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/AggregateHandler.java @@ -6,11 +6,15 @@ import java.util.Collection; import org.lucares.recommind.logs.DataSeries; public interface AggregateHandler { - + // TODO handle aggregates as normal DataSeries - + void addGnuplotDefinitions(StringBuilder result, String separator, Collection dataSeries); - + + default void appendln(final StringBuilder builder, final String string) { + builder.append(string + "\n"); + } + default void appendfln(final StringBuilder builder, final String format, final Object... args) { builder.append(String.format(format + "\n", args)); } diff --git a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/PercentileAggregate.java b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/PercentileAggregate.java index dc123ac..01e4ac3 100644 --- a/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/PercentileAggregate.java +++ b/pdb-plotting/src/main/java/org/lucares/pdb/plot/api/PercentileAggregate.java @@ -5,41 +5,35 @@ import java.util.Collection; import org.lucares.recommind.logs.DataSeries; -public class PercentileAggregate implements AggregateHandler{ +public class PercentileAggregate implements AggregateHandler { @Override - public CustomAggregator createCustomAggregator(Path tmpDir) { + public CustomAggregator createCustomAggregator(final Path tmpDir) { return new PercentileCustomAggregator(tmpDir); } - - + public PercentileAggregate() { } @Override - public void addGnuplotDefinitions(StringBuilder result, String separator, Collection dataSeries) { - - // TODO still neeeded? - + public void addGnuplotDefinitions(final StringBuilder result, final String separator, + final Collection dataSeries) { + + appendln(result, "set x2label \"Percentile\""); + appendln(result, "set format x2 \"%.0f%%\""); + appendln(result, "set x2tics 5"); + appendln(result, "set x2range [\"0\":\"100\"]"); } @Override - public void addPlots(StringBuilder result, Collection dataSeries) { - for (DataSeries dataSerie : dataSeries) { + public void addPlots(final StringBuilder result, final Collection dataSeries) { + for (final DataSeries dataSerie : dataSeries) { final AggregatedData aggregatedData = dataSerie.getAggregatedData(); - if (aggregatedData != null){ - appendfln( - result, - "'%s' using 1:2 notitle with lines axes x2y1 lw 2 %s, \\", // - aggregatedData.getDataFile().getAbsolutePath(),// + if (aggregatedData != null) { + appendfln(result, "'%s' using 1:2 notitle with lines axes x2y1 lw 2 %s, \\", // + aggregatedData.getDataFile().getAbsolutePath(), // dataSerie.getStyle()// ); - -// appendfln(result, "'%s' using 1:2 title '%s' with lines axes x2y1 %s, \\", // -// aggregatedData.getDataFile().getAbsolutePath(),// -// dataSerie.getTitle()+" " +aggregatedData.getLabel(), // title -// dataSerie.getStyle()// -// ); } } } diff --git a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotFileGenerator.java b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotFileGenerator.java index f9f886a..05b4cbe 100644 --- a/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotFileGenerator.java +++ b/pdb-plotting/src/main/java/org/lucares/recommind/logs/GnuplotFileGenerator.java @@ -28,11 +28,6 @@ public class GnuplotFileGenerator { appendfln(result, "set xlabel \"%s\"", xAxis.getXlabel()); appendfln(result, "set xrange [\"%s\":\"%s\"]", xAxis.getFrom(), xAxis.getTo()); - appendfln(result, "set x2label \"Percentile\""); - appendln(result, "set format x2 \"%.0f%%\""); - appendfln(result, "set x2tics"); - appendfln(result, "set x2range [\"0\":\"100\"]"); - final long graphOffset = settings.getYAxisScale() == AxisScale.LINEAR ? 0 : 1; appendfln(result, "set yrange [\"" + graphOffset + "\":]");