don't render labels in gallery preview

This commit is contained in:
2020-04-05 09:55:08 +02:00
parent 45f9e36a88
commit 89c66d98f9
4 changed files with 15 additions and 49 deletions

View File

@@ -4,7 +4,7 @@ import org.lucares.recommind.logs.GnuplotAxis;
public interface BarChart extends IndexedAggregator { public interface BarChart extends IndexedAggregator {
String asCsv(); String asCsv(boolean renderLabels);
String getDataName(); String getDataName();

View File

@@ -1,30 +1,21 @@
package org.lucares.pdb.plot.api; package org.lucares.pdb.plot.api;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Locale; import java.util.Locale;
import java.util.UUID; import java.util.UUID;
import org.lucares.pdb.api.RuntimeIOException;
import org.lucares.recommind.logs.GnuplotAxis; import org.lucares.recommind.logs.GnuplotAxis;
public class BarChartAggregator implements CustomAggregator, IndexedAggregator, BarChart { public class BarChartAggregator implements CustomAggregator, IndexedAggregator, BarChart {
long count = 0; long count = 0;
private final Path tmpDir;
private Long index = null; private Long index = null;
private Long numberOfDataSeries; private Long numberOfDataSeries;
private final String dataName = "$data" + UUID.randomUUID().toString().replace("-", ""); private final String dataName = "$data" + UUID.randomUUID().toString().replace("-", "");
public BarChartAggregator(final Path tmpDir) { public BarChartAggregator() {
super(); super();
this.tmpDir = tmpDir;
} }
@Override @Override
@@ -60,7 +51,7 @@ public class BarChartAggregator implements CustomAggregator, IndexedAggregator,
} }
@Override @Override
public String asCsv() { public String asCsv(final boolean renderLabels) {
final StringBuilder csv = new StringBuilder(); final StringBuilder csv = new StringBuilder();
csv.append(getIndex() + 0.5); csv.append(getIndex() + 0.5);
@@ -73,17 +64,9 @@ public class BarChartAggregator implements CustomAggregator, IndexedAggregator,
@Override @Override
public AggregatedData getAggregatedData() { public AggregatedData getAggregatedData() {
try { // not needed - usually this method is used to write the data to file, but bar
final File dataFile = File.createTempFile("bar", ".dat", tmpDir.toFile()); // charts use inline data
return null;
final String csv = asCsv();
Files.writeString(dataFile.toPath(), csv, StandardCharsets.UTF_8);
final AggregatedData result = new AggregatedData("label", dataFile);
return result;
} catch (final IOException e) {
throw new RuntimeIOException(e);
}
} }
@Override @Override

View File

@@ -1,10 +1,5 @@
package org.lucares.pdb.plot.api; package org.lucares.pdb.plot.api;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.SortedSet; import java.util.SortedSet;
@@ -12,15 +7,12 @@ import java.util.TreeSet;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import org.lucares.pdb.api.RuntimeIOException;
import org.lucares.recommind.logs.GnuplotAxis; import org.lucares.recommind.logs.GnuplotAxis;
public class BarChartAggregatorForIntervals implements CustomAggregator, IndexedAggregator, BarChart { public class BarChartAggregatorForIntervals implements CustomAggregator, IndexedAggregator, BarChart {
private static final double SPACE_BETWEEN_BARS = 0.6; private static final double SPACE_BETWEEN_BARS = 0.6;
private final Path tmpDir;
private Long index = null; private Long index = null;
private Long numberOfDataSeries; private Long numberOfDataSeries;
@@ -32,8 +24,7 @@ public class BarChartAggregatorForIntervals implements CustomAggregator, Indexed
private int count; private int count;
public BarChartAggregatorForIntervals(final Path tmpDir, final Interval interval) { public BarChartAggregatorForIntervals(final Interval interval) {
this.tmpDir = tmpDir;
this.interval = interval; this.interval = interval;
buckets = interval.getBuckets(); buckets = interval.getBuckets();
} }
@@ -77,7 +68,7 @@ public class BarChartAggregatorForIntervals implements CustomAggregator, Indexed
} }
@Override @Override
public String asCsv() { public String asCsv(final boolean renderLabels) {
final StringBuilder csv = new StringBuilder(); final StringBuilder csv = new StringBuilder();
final boolean isMiddleSeries = getIndex() == numberOfDataSeries / 2; final boolean isMiddleSeries = getIndex() == numberOfDataSeries / 2;
@@ -86,7 +77,7 @@ public class BarChartAggregatorForIntervals implements CustomAggregator, Indexed
final long count = buckets.get(bucketId).get(); final long count = buckets.get(bucketId).get();
csv.append(offset + getIndex() * SPACE_BETWEEN_BARS + 0.5); csv.append(offset + getIndex() * SPACE_BETWEEN_BARS + 0.5);
csv.append(","); csv.append(",");
csv.append(isMiddleSeries ? bucketId : ""); csv.append(renderLabels && isMiddleSeries ? bucketId : "");
csv.append(","); csv.append(",");
csv.append(count); csv.append(count);
csv.append("\n"); csv.append("\n");
@@ -102,17 +93,9 @@ public class BarChartAggregatorForIntervals implements CustomAggregator, Indexed
@Override @Override
public AggregatedData getAggregatedData() { public AggregatedData getAggregatedData() {
try { // not needed - usually this method is used to write the data to file, but bar
final File dataFile = File.createTempFile("bar", ".dat", tmpDir.toFile()); // charts use inline data
return null;
final String csv = asCsv();
Files.writeString(dataFile.toPath(), csv, StandardCharsets.UTF_8);
final AggregatedData result = new AggregatedData("label", dataFile);
return result;
} catch (final IOException e) {
throw new RuntimeIOException(e);
}
} }
@Override @Override

View File

@@ -62,7 +62,7 @@ public class BarChartHandler extends AggregateHandler {
final BarChart barAggregator = (BarChart) aggregator; final BarChart barAggregator = (BarChart) aggregator;
appendfln(result, "%s <<EOD", barAggregator.getDataName()); appendfln(result, "%s <<EOD", barAggregator.getDataName());
appendln(result, barAggregator.asCsv()); appendln(result, barAggregator.asCsv(settings.isRenderLabels()));
appendln(result, "EOD"); appendln(result, "EOD");
if (settings.isRenderLabels()) { if (settings.isRenderLabels()) {
@@ -91,9 +91,9 @@ public class BarChartHandler extends AggregateHandler {
CustomAggregator createCustomAggregator(final Path tmpDir, final PlotSettings plotSettings, CustomAggregator createCustomAggregator(final Path tmpDir, final PlotSettings plotSettings,
final long fromEpochMilli, final long toEpochMilli) { final long fromEpochMilli, final long toEpochMilli) {
if (plotSettings.getInterval().isPresent()) { if (plotSettings.getInterval().isPresent()) {
return new BarChartAggregatorForIntervals(tmpDir, plotSettings.getInterval().get()); return new BarChartAggregatorForIntervals(plotSettings.getInterval().get());
} else { } else {
return new BarChartAggregator(tmpDir); return new BarChartAggregator();
} }
} }