Как вы можете видеть на рисунке, точки на верхней и нижней оси видны только наполовину. Если вам нужно больше фрагментов кода, дайте мне знать. Я также пытался исправить это с помощью pane.setPadding ... но ничего не происходит. Также в части CSS важный ничего не делает.
Java Код:
public DistrictsChart(TimePeriod timePeriod, Pane pane) {
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.SUSPECTED), (Callback<Map<String, Long>>) suspectedData ->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.CONFIRMED), (Callback<Map<String, Long>>) confirmedData ->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.RECOVERED), (Callback<Map<String, Long>>) recoveredData ->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.DEATH), (Callback<Map<String, Long>>) deathData -> Platform.runLater(() -> {
// Clear old chart
pane.getChildren().clear();
CategoryAxis xAxis = new CategoryAxis();
xAxis.setLabel("Stadtteile");
NumberAxis yAxis = new NumberAxis("Infizierte", 0, getMaxValue(suspectedData, confirmedData, recoveredData, deathData), 1);
yAxis.setAutoRanging(false);
StackedBarChart<String, Number> barChart = new StackedBarChart<>(xAxis, yAxis);
XYChart.Series<String, Number> dataSeriesSuspected = new XYChart.Series<>();
dataSeriesSuspected.getData().addAll(suspectedData.entrySet().stream().map(e -> new XYChart.Data<String, Number>(e.getKey(), e.getValue())).collect(Collectors.toList()));
barChart.getData().addAll(dataSeriesInfected, dataSeriesRecovered, dataSeriesDead, dataSeriesSuspected);
barChart.setLegendVisible(false);
pane.getChildren().add(barChart);
}), Main.getInstance().getMySQL().getPool()), Main.getInstance().getMySQL().getPool()), Main.getInstance().getMySQL().getPool()), Main.getInstance().getMySQL().getPool());
}
private int getMaxValue(Map<String, Long> suspected, Map<String, Long> confirmed, Map<String, Long> recovered, Map<String, Long> death) {
Set<String> places = new HashSet<>();
places.addAll(suspected.keySet());
places.addAll(confirmed.keySet());
places.addAll(recovered.keySet());
places.addAll(death.keySet());
return places.stream().mapToInt(s -> (int) (suspected.getOrDefault(s, 0L) + confirmed.getOrDefault(s, 0L)
+ recovered.getOrDefault(s, 0L) + death.getOrDefault(s, 0L))).max().orElse(0);
}
CSS Код:
.chart-content, .chart {
-fx-padding: 2; <- Not Working
}
.chart .text {
-fx-fill: primary-text-color;
}
.chart-series-area-line {
-fx-stroke: primary-color;
}
.chart-area-symbol {
-fx-background-color: primary-color;
}
.chart-vertical-grid-lines, .chart-horizontal-grid-lines {
-fx-stroke: primary-background-color;
-fx-stroke-dash-array: 1;
}
.axis {
-fx-tick-mark-visible: false;
-fx-minor-tick-visible: false;
-fx-tick-label-gap: 8;
-fx-border-color: bar-color;
}