reduce size of x-axis labels

This commit is contained in:
2017-04-19 20:02:02 +02:00
parent dc716f8ac4
commit 5ab6309fc5
2 changed files with 26 additions and 16 deletions

View File

@@ -10,23 +10,23 @@ public class GnuplotSettings {
private int width = 1600;
private String timefmt = "%Y-%m-%dT%H:%M:%S";
// set format x "%m-%d\n%H:%M"
// set format for x-axis
private String formatX = "%Y-%m-%d %H:%M:%S";
// set datafile separator ","
// set datafile separator
private String datafileSeparator = ",";
// set xlabel "Time"
// set xlabel
private String xlabel = "Time";
// set ylabel "Traffic"
// set ylabel
private String ylabel = "Duration in ms";
// set output "datausage.png"
private final Path output;
// set xtics rotate by 80
private int rotateXAxisLabel = -80;
// set xtics rotate by 10 degree
private int rotateXAxisLabel = -10;
private AxisScale yAxisScale;
public GnuplotSettings(final Path output) {

View File

@@ -109,7 +109,8 @@ public class Plotter {
final GnuplotSettings gnuplotSettings = new GnuplotSettings(outputFile);
gnuplotSettings.setHeight(height);
gnuplotSettings.setWidth(width);
gnuplotSettings.setFormatX(getFormatX(minDate, maxDate));
defineXAxis(gnuplotSettings, minDate, maxDate);
gnuplotSettings.setYAxisScale(plotSettings.getYAxisScale());
gnuplot.plot(gnuplotSettings, dataSeries);
@@ -125,20 +126,29 @@ public class Plotter {
}
}
private void defineXAxis(final GnuplotSettings gnuplotSettings, final OffsetDateTime minDate,
final OffsetDateTime maxDate) {
String formatX;
int rotateX;
if (minDate.until(maxDate, ChronoUnit.WEEKS) > 1) {
formatX = "%Y-%m-%d";
rotateX = 0;
} else {
formatX = "%Y-%m-%d %H:%M:%S";
rotateX = gnuplotSettings.getRotateXAxisLabel();
}
gnuplotSettings.setFormatX(formatX);
gnuplotSettings.setRotateXAxisLabel(rotateX);
}
private String uniqueDirectoryName() {
return OffsetDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH_mm_ss")) + "_"
+ UUID.randomUUID().toString();
}
private String getFormatX(final OffsetDateTime minDate, final OffsetDateTime maxDate) {
if (minDate.until(maxDate, ChronoUnit.WEEKS) > 1) {
return "%Y-%m-%d";
}
return "%Y-%m-%d %H:%M:%S";
}
private void sortAndLimit(final List<DataSeries> dataSeries, final PlotSettings plotSettings) {
final Limit limitBy = plotSettings.getLimitBy();