Compare commits
2 Commits
452030de5e
...
380bad6967
| Author | SHA1 | Date | |
|---|---|---|---|
| 380bad6967 | |||
| f3556b6909 |
@@ -60,6 +60,7 @@ class YAxisTicks {
|
|||||||
} else {
|
} else {
|
||||||
switch (yAxisDefinition.getAxisScale()) {
|
switch (yAxisDefinition.getAxisScale()) {
|
||||||
case LINEAR:
|
case LINEAR:
|
||||||
|
result = computeLinearYTicksNoUnit(height, yRangeMin, yRangeMax);
|
||||||
break;
|
break;
|
||||||
case LOG10:
|
case LOG10:
|
||||||
result = computeLog10YTicksNoUnit(height, yRangeMin, yRangeMax);
|
result = computeLog10YTicksNoUnit(height, yRangeMin, yRangeMax);
|
||||||
@@ -206,25 +207,103 @@ class YAxisTicks {
|
|||||||
|
|
||||||
final List<String> ticsLabels = Arrays.asList(//
|
final List<String> ticsLabels = Arrays.asList(//
|
||||||
"\"1\" 1", //
|
"\"1\" 1", //
|
||||||
|
"\"2\" 2", //
|
||||||
|
"\"5\" 5", //
|
||||||
"\"10\" 10", //
|
"\"10\" 10", //
|
||||||
|
"\"20\" 20", //
|
||||||
|
"\"50\" 50", //
|
||||||
"\"100\" 100", //
|
"\"100\" 100", //
|
||||||
|
"\"200\" 200", //
|
||||||
|
"\"500\" 500", //
|
||||||
"\"1000\" 1000", //
|
"\"1000\" 1000", //
|
||||||
|
"\"2000\" 2000", //
|
||||||
|
"\"5000\" 5000", //
|
||||||
"\"10k\" 10000", //
|
"\"10k\" 10000", //
|
||||||
|
"\"20k\" 20000", //
|
||||||
|
"\"50k\" 50000", //
|
||||||
"\"100k\" 100000", //
|
"\"100k\" 100000", //
|
||||||
|
"\"200k\" 200000", //
|
||||||
|
"\"500k\" 500000", //
|
||||||
"\"1m\" 1000000", //
|
"\"1m\" 1000000", //
|
||||||
|
"\"2m\" 2000000", //
|
||||||
|
"\"5m\" 5000000", //
|
||||||
"\"10m\" 10000000", //
|
"\"10m\" 10000000", //
|
||||||
|
"\"20m\" 20000000", //
|
||||||
|
"\"50m\" 50000000", //
|
||||||
"\"100m\" 100000000", //
|
"\"100m\" 100000000", //
|
||||||
|
"\"200m\" 200000000", //
|
||||||
|
"\"500m\" 500000000", //
|
||||||
"\"1b\" 1000000000.0", //
|
"\"1b\" 1000000000.0", //
|
||||||
|
"\"2b\" 2000000000.0", //
|
||||||
|
"\"5b\" 5000000000.0", //
|
||||||
"\"10b\" 10000000000.0", //
|
"\"10b\" 10000000000.0", //
|
||||||
|
"\"20b\" 20000000000.0", //
|
||||||
|
"\"50b\" 50000000000.0", //
|
||||||
"\"100b\" 100000000000.0", //
|
"\"100b\" 100000000000.0", //
|
||||||
|
"\"200b\" 200000000000.0", //
|
||||||
|
"\"500b\" 500000000000.0", //
|
||||||
"\"1t\" 1000000000000.0", //
|
"\"1t\" 1000000000000.0", //
|
||||||
|
"\"2t\" 2000000000000.0", //
|
||||||
|
"\"5t\" 5000000000000.0", //
|
||||||
"\"10t\" 10000000000000.0", //
|
"\"10t\" 10000000000000.0", //
|
||||||
"\"100t\" 100000000000000.0" //
|
"\"20t\" 20000000000000.0", //
|
||||||
|
"\"50t\" 50000000000000.0", //
|
||||||
|
"\"100t\" 100000000000000.0", //
|
||||||
|
"\"200t\" 2000000000000000.0", //
|
||||||
|
"\"500t\" 5000000000000000.0", //
|
||||||
|
"\"1q\" 10000000000000000.0", //
|
||||||
|
"\"2q\" 20000000000000000.0", //
|
||||||
|
"\"5q\" 50000000000000000.0" //
|
||||||
);
|
);
|
||||||
|
|
||||||
return ticsLabels;
|
return ticsLabels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<String> computeLinearYTicksNoUnit(final long height, final long yRangeMinInMs,
|
||||||
|
final long yRangeMaxInMs) {
|
||||||
|
final long plotHeight = height - GnuplotSettings.GNUPLOT_TOP_BOTTOM_MARGIN;
|
||||||
|
final long maxLabels = plotHeight / (GnuplotSettings.TICKS_FONT_SIZE * 2);
|
||||||
|
|
||||||
|
final long range = yRangeMaxInMs - yRangeMinInMs;
|
||||||
|
final long rangePerLabel = roundToNextLinearNoUnitStep(range / maxLabels);
|
||||||
|
|
||||||
|
final List<String> ticsLabels = new ArrayList<>();
|
||||||
|
for (long i = yRangeMinInMs; i <= yRangeMaxInMs; i += rangePerLabel) {
|
||||||
|
ticsLabels.add("\"" + valueToTic(i, rangePerLabel) + "\" " + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ticsLabels;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String valueToTic(final long val, final double rangePerLabel) {
|
||||||
|
final List<String> powers = List.of("", "k", "m", "b", "t", "q");
|
||||||
|
|
||||||
|
int power = 1;
|
||||||
|
String result = String.format("%d", val);
|
||||||
|
while (val >= Math.pow(1000, power) && power < powers.size()) {
|
||||||
|
result = String.format("%.3f", val / Math.pow(1000, power));
|
||||||
|
result = result.replaceAll("\\.?0*$", "");
|
||||||
|
result = result + powers.get(power);
|
||||||
|
power = power + 1;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static long roundToNextLinearNoUnitStep(final long stepSize) {
|
||||||
|
final List<Long> steps = Arrays.asList(1L, 5L, 10L, 20L, 25L, 50L, 100L, 200L, 250L, 500L, 1000L, 2000L, 2500L,
|
||||||
|
5000L, 10_000L, 20_000L, 25_000L, 50_000L, 100_000L, 200_000L, 250_000L, 500_000L, 1_000_000L,
|
||||||
|
2_000_000L, 2_500_000L, 5_000_000L, 10_000_000L, 20_000_000L, 25_000_000L, 100_000_000L, 200_000_000L,
|
||||||
|
250_000_000L, 500_000_000L, 1_000_000_000L, 2_000_000_000L, 2_500_000_000L, 5_000_000_000L);
|
||||||
|
|
||||||
|
for (final Long step : steps) {
|
||||||
|
if (stepSize < step) {
|
||||||
|
return step;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return stepSize;
|
||||||
|
}
|
||||||
|
|
||||||
private static long roundToLinearLabelSteps(final long msPerLabel) {
|
private static long roundToLinearLabelSteps(final long msPerLabel) {
|
||||||
final List<Long> steps = Arrays.asList(2L, 5L, 10L, 20L, 50L, 100L, 200L, 500L, 1000L, 2000L, 5000L, 10_000L,
|
final List<Long> steps = Arrays.asList(2L, 5L, 10L, 20L, 50L, 100L, 200L, 500L, 1000L, 2000L, 5000L, 10_000L,
|
||||||
20_000L, MINUTES.toMillis(1), MINUTES.toMillis(2), MINUTES.toMillis(5), MINUTES.toMillis(10),
|
20_000L, MINUTES.toMillis(1), MINUTES.toMillis(2), MINUTES.toMillis(5), MINUTES.toMillis(10),
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
db.base=D:/ws/pdb/databases/test
|
db.base=c:/ws/pdb/databases/test
|
||||||
server.port=17333
|
server.port=17333
|
||||||
gnuplot.home=D:/ws/pdb/gnuplot-5.2
|
gnuplot.home=D:/ws/pdb/gnuplot-5.2
|
||||||
cache.images.duration.seconds=86400
|
cache.images.duration.seconds=86400
|
||||||
defaults.groupBy=pod,method,metric
|
defaults.groupBy=pod,method,metric
|
||||||
defaults.splitBy=method
|
defaults.splitBy=method
|
||||||
defaults.query.examples=pod=vapfinra01 and method=ViewService.findFieldView,ViewService.findFieldViewGroup;pod=vappilby01 and method=ReviewInContextController.index;pod=vapnyse001 and method=ReviewInContextController.index,ReviewController.index
|
defaults.query.examples=pod=vadperfo01 and method=ViewService.findFieldView,ViewService.findFieldViewGroup;pod=vadperfo01 and method=ReviewInContextController.index;pod=vadperfo01 and method=ReviewInContextController.index,ReviewController.index
|
||||||
|
|||||||
Reference in New Issue
Block a user