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 0de09c2..8b1f507 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 @@ -35,17 +35,31 @@ public class GnuplotFileGenerator { appendfln(result, "set xlabel \"%s\"", settings.getXlabel()); appendfln(result, "set xtics rotate by %d", settings.getRotateXAxisLabel()); appendfln(result, "set xrange [\"%s\":\"%s\"]", settings.getDateFrom(), settings.getDateTo()); - appendfln(result, "set yrange [\"1\":]"); + + final long graphOffset = settings.getYAxisScale() == AxisScale.LINEAR ? 0 : 1; + appendfln(result, "set yrange [\""+graphOffset+"\":]"); appendfln(result, "set ylabel \"%s\"", settings.getYlabel()); - if (settings.getYAxisScale() == AxisScale.LOG10) { + switch (settings.getYAxisScale()) { + case LINEAR: + break; + case LOG10: appendfln(result, "set logscale y"); - } else if (settings.getYAxisScale() == AxisScale.LOG2) { + break; + case LOG2: appendfln(result, "set logscale y 2"); + break; } appendfln(result, "set grid"); appendfln(result, "set output \"%s\"", settings.getOutput().toAbsolutePath().toString().replace("\\", "/")); + + // marker lines that show which area will be zoomed + final long minDate = Long.parseLong(settings.getDateFrom()); + final long maxDate = Long.parseLong(settings.getDateTo()); + appendfln(result, "set arrow from "+(minDate + (maxDate-minDate)*0.25)+","+graphOffset+" rto graph 0,1 lt 3 lc rgb \"#EEEEEE\" nohead"); + appendfln(result, "set arrow from "+(minDate + (maxDate-minDate)*0.75)+","+graphOffset+" rto graph 0,1 lc rgb \"#EEEEEE\" nohead"); + appendf(result, "plot "); count = 1;