JavaFx StackedBar Chart Issue

У меня есть диаграмма с данными, сложенными по (-, +) оси Y.

С JfreeChart все это идет своим чередом, и данные отображаются на каждом столбце без потерь.

Но при использовании javafx StackedBar Chart, когда ряд баров имеет (положительный отрицательно) данные сложены бар поврежден и потери данных.

            if (plusValue > 0) {
                series.getData().add(new XYChart.Data(xPoint, plusValue));
            }
            if (minusValue > 0) {
                series.getData().add(new XYChart.Data(xPoint, -minusValue));
            }

Обновить :-

Образец Oracle StackedBarChart - "Я изменяю значение Серии "}

import java.util.Arrays;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.StackedBarChart;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class StackedBarChartSample extends Application {

final static String austria = "Austria";
final static String brazil = "Brazil";
final static String france = "France";
final static String italy = "Italy";
final static String usa = "USA";
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final StackedBarChart sbc =
        new StackedBarChart(xAxis, yAxis);
final XYChart.Series series1 =
        new XYChart.Series();
final XYChart.Series series2 =
        new XYChart.Series();
final XYChart.Series series3 =
        new XYChart.Series();

@Override
public void start(Stage stage) {
    stage.setTitle("Bar Chart Sample");
    sbc.setTitle("Country Summary");
    xAxis.setLabel("Country");
    xAxis.setCategories(FXCollections.observableArrayList(
            Arrays.asList(austria, brazil, france, italy, usa)));
    yAxis.setLabel("Value");
    series1.setName("2003");
    // plus value
    series1.getData().add(new XYChart.Data(austria, 200));
    series1.getData().add(new XYChart.Data(brazil, 300));
    series1.getData().add(new XYChart.Data(france, 400));
    series1.getData().add(new XYChart.Data(italy, 500));
    series1.getData().add(new XYChart.Data(usa, 600));
    // minus value
    series1.getData().add(new XYChart.Data(austria, -200));
    series1.getData().add(new XYChart.Data(brazil, -300));
    series1.getData().add(new XYChart.Data(france, -400));
    series1.getData().add(new XYChart.Data(italy, -500));
    series1.getData().add(new XYChart.Data(usa, -600));
    series2.setName("2004");
    series2.getData().add(new XYChart.Data(austria, 200));
    series2.getData().add(new XYChart.Data(brazil, 300));
    series2.getData().add(new XYChart.Data(france, 400));
    series2.getData().add(new XYChart.Data(italy, 500));
    series2.getData().add(new XYChart.Data(usa, 600));
    // minus value
    series2.getData().add(new XYChart.Data(austria, -200));
    series2.getData().add(new XYChart.Data(brazil, -300));
    series2.getData().add(new XYChart.Data(france, -400));
    series2.getData().add(new XYChart.Data(italy, -500));
    series2.getData().add(new XYChart.Data(usa, -600));
    series3.setName("2005");
    series3.getData().add(new XYChart.Data(austria, 200));
    series3.getData().add(new XYChart.Data(brazil, 300));
    series3.getData().add(new XYChart.Data(france, 400));
    series3.getData().add(new XYChart.Data(italy, 500));
    series3.getData().add(new XYChart.Data(usa, 600));
    // minus value
    series3.getData().add(new XYChart.Data(austria, -200));
    series3.getData().add(new XYChart.Data(brazil, -300));
    series3.getData().add(new XYChart.Data(france, -400));
    series3.getData().add(new XYChart.Data(italy, -500));
    series3.getData().add(new XYChart.Data(usa, -600));
    Scene scene = new Scene(sbc, 800, 600);
    sbc.getData().addAll(series1, series2, series3);
    stage.setScene(scene);
    stage.show();
}

public static void main(String[] args) {
    launch(args);
}

Без минус значения.При отрицательном значении данные повреждены.

Ответы на вопрос(2)

Ваш ответ на вопрос