add labels to bar chart

This commit is contained in:
2020-01-26 12:58:37 +01:00
parent 459c659f85
commit 3cb7ec434f
5 changed files with 20 additions and 6 deletions

View File

@@ -57,7 +57,7 @@ public abstract class AggregateHandler implements Appender {
abstract CustomAggregator createCustomAggregator(Path tmpDir, PlotSettings plotSettings, long fromEpochMilli, abstract CustomAggregator createCustomAggregator(Path tmpDir, PlotSettings plotSettings, long fromEpochMilli,
long toEpochMilli); long toEpochMilli);
String beforePlot(final CustomAggregator aggregator) { String beforePlot(final CustomAggregator aggregator, final GnuplotSettings settings) {
return ""; return "";
} }

View File

@@ -93,7 +93,8 @@ public class AggregateHandlerCollection {
return new AggregatorCollection(aggregators); return new AggregatorCollection(aggregators);
} }
public void addPlots(final StringBuilder result, final Collection<DataSeries> dataSeries) { public void addPlots(final StringBuilder result, final Collection<DataSeries> dataSeries,
final GnuplotSettings settings) {
final StringBuilder plots = new StringBuilder(); final StringBuilder plots = new StringBuilder();
final StringBuilder beforePlots = new StringBuilder(); final StringBuilder beforePlots = new StringBuilder();
@@ -116,7 +117,7 @@ public class AggregateHandlerCollection {
index++; index++;
} }
final String beforePlot = handler.beforePlot(aggregator); final String beforePlot = handler.beforePlot(aggregator, settings);
beforePlots.append(beforePlot); beforePlots.append(beforePlot);
final String plot = handler.addPlot(aggregator, dataSerie.getStyle(), title); final String plot = handler.addPlot(aggregator, dataSerie.getStyle(), title);

View File

@@ -37,6 +37,10 @@ public class BarChartAggregator implements CustomAggregator, IndexedAggregator {
return this.index; return this.index;
} }
public long getCount() {
return count;
}
@Override @Override
public void addValue(final boolean valueIsInYRange, final long epochMilli, final long value) { public void addValue(final boolean valueIsInYRange, final long epochMilli, final long value) {
count++; count++;
@@ -45,7 +49,7 @@ public class BarChartAggregator implements CustomAggregator, IndexedAggregator {
public String asCsv() { public String asCsv() {
final StringBuilder csv = new StringBuilder(); final StringBuilder csv = new StringBuilder();
csv.append(index + 0.5); csv.append(getIndex() + 0.5);
csv.append(","); csv.append(",");
csv.append(""); csv.append("");
csv.append(","); csv.append(",");

View File

@@ -4,6 +4,7 @@ import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Optional; import java.util.Optional;
import org.lucares.recommind.logs.AxisSettings; import org.lucares.recommind.logs.AxisSettings;
@@ -68,7 +69,7 @@ public class BarChartHandler extends AggregateHandler {
} }
@Override @Override
String beforePlot(final CustomAggregator aggregator) { String beforePlot(final CustomAggregator aggregator, final GnuplotSettings settings) {
final StringBuilder result = new StringBuilder(); final StringBuilder result = new StringBuilder();
final BarChartAggregator barAggregator = (BarChartAggregator) aggregator; final BarChartAggregator barAggregator = (BarChartAggregator) aggregator;
@@ -76,6 +77,14 @@ public class BarChartHandler extends AggregateHandler {
appendfln(result, "%s <<EOD", barAggregator.getDataName()); appendfln(result, "%s <<EOD", barAggregator.getDataName());
appendln(result, barAggregator.asCsv()); appendln(result, barAggregator.asCsv());
appendln(result, "EOD"); appendln(result, "EOD");
if (settings.isRenderLabels()) {
appendfln(result, "set label at %f, %d '%s' center front offset 0,0.3", // front
barAggregator.getIndex() + 0.5, //
barAggregator.getCount(), //
String.format(Locale.US, "%,d", barAggregator.getCount()));
}
return result.toString(); return result.toString();
} }

View File

@@ -67,7 +67,7 @@ public class GnuplotFileGenerator implements Appender {
// appendfln(result, "set xrange [-1:1]"); // appendfln(result, "set xrange [-1:1]");
appendfln(result, "set boxwidth 0.5"); appendfln(result, "set boxwidth 0.5");
settings.getAggregates().addPlots(result, dataSeries); settings.getAggregates().addPlots(result, dataSeries, settings);
// Add a plot outside of the visible range. Without this gnuplot would not // Add a plot outside of the visible range. Without this gnuplot would not
// render images when there are not data points on it. // render images when there are not data points on it.