JavaFX中具有小值的堆叠图表

JavaFX中具有小值的堆叠图表,java,javafx,Java,Javafx,我想使用堆叠图(条形图和折线图)来显示数据,我发现本教程: 它工作得很好,但是当我使用一个小值列表时,结果显示不正确 以下是代码示例: public class StackedChartSample extends Application { final static String austria = "Austria"; final static String brazil = "Brazil"; final static String france = "Franc

我想使用堆叠图(条形图和折线图)来显示数据,我发现本教程:

它工作得很好,但是当我使用一个小值列表时,结果显示不正确

以下是代码示例:

public class StackedChartSample 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";

    @Override
    public void start(Stage stage) {

        final CategoryAxis xAxis = new CategoryAxis();
        final NumberAxis yAxis = new NumberAxis();

        // base chart
        final BarChart<String, Number> barChart = new BarChart<String, Number>(xAxis, yAxis);
        barChart.setLegendVisible(false);
        barChart.setAnimated(false);
        barChart.setTitle("Equipe1 Chart");
        barChart.setStyle("CHART_COLOR_1: blue;");

        xAxis.setLabel("Country");
        yAxis.setLabel("Value");

        // overlay chart
        LineChart<String, Number> lineChart = new LineChart<String, Number>(xAxis, yAxis);
        lineChart.setLegendVisible(false);
        lineChart.setAnimated(false);
        lineChart.setCreateSymbols(true);
        lineChart.setAlternativeRowFillVisible(false);
        lineChart.setAlternativeColumnFillVisible(false);
        lineChart.setHorizontalGridLinesVisible(false);
        lineChart.setVerticalGridLinesVisible(false);
        lineChart.getXAxis().setVisible(false);
        lineChart.getYAxis().setVisible(false);
        lineChart.getStylesheets().addAll(getClass().getResource("chart.css").toExternalForm());

        barChart.getData().add( createChartSeries());
        lineChart.getData().add( createChartSeries2());

        StackPane root = new StackPane();
        root.getChildren().addAll( barChart, lineChart);

        Scene scene = new Scene(root, 800, 600);

        stage.setScene(scene);
        stage.show();
    }

    private XYChart.Series<String,Number> createChartSeries() {

        XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
        series.getData().add(new XYChart.Data<String,Number>("frf", 68));
        series.getData().add(new XYChart.Data<String,Number>("fef", 67.82));
        series.getData().add(new XYChart.Data<String,Number>("fdf", 50));
        series.getData().add(new XYChart.Data<String,Number>("fsf", 43.15));
        series.getData().add(new XYChart.Data<String,Number>("faf", 70));
        series.getData().add(new XYChart.Data<String,Number>("fxf", 68,34));
        series.getData().add(new XYChart.Data<String,Number>("dd", 60.82));
        series.getData().add(new XYChart.Data<String,Number>("ddd", 50));
        series.getData().add(new XYChart.Data<String,Number>("dyy", 80.15));
        series.getData().add(new XYChart.Data<String,Number>("ccc", 85));

        return series;
    }

    private XYChart.Series<String,Number> createChartSeries2() {

        XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
        series.getData().add(new XYChart.Data<String,Number>("frf", 67));
        series.getData().add(new XYChart.Data<String,Number>("fef", 67));
        series.getData().add(new XYChart.Data<String,Number>("fdf", 67));
        series.getData().add(new XYChart.Data<String,Number>("fsf", 67));
        series.getData().add(new XYChart.Data<String,Number>("faf", 67));
        series.getData().add(new XYChart.Data<String,Number>("fxf", 67));
        series.getData().add(new XYChart.Data<String,Number>("dd", 67));
        series.getData().add(new XYChart.Data<String,Number>("ddd", 67));
        series.getData().add(new XYChart.Data<String,Number>("dyy", 67));
        series.getData().add(new XYChart.Data<String,Number>("ccc", 67));
        return series;
    }

    public static void main(String[] args) {
        launch(args);
    }
}
公共类StackedChartSample扩展应用程序{
最终静态字符串austria=“austria”;
最终静态字符串巴西=“巴西”;
最终静态字符串france=“france”;
最终静态字符串意大利=“意大利”;
最终静态字符串usa=“usa”;
@凌驾
公众假期开始(阶段){
最终CategoryAxis xAxis=新CategoryAxis();
最终数字axis yAxis=新数字axis();
//底图
最终条形图=新条形图(xAxis,yAxis);
条形图。setLegendVisible(假);
条形图设置动画(假);
条形图。设置标题(“设备1图”);
设置样式(“图表颜色1:蓝色;”;
xAxis.setLabel(“国家”);
yAxis.setLabel(“值”);
//叠加图
线形图线形图=新线形图(xAxis,yAxis);
线形图。setLegendVisible(假);
线形图。设置动画(假);
lineChart.setCreateSynumbles(true);
线形图.setAlternativeRowFillVisible(假);
lineChart.setAlternativeColumnFill可见(false);
lineChart.setHorizontalGridLinesVisible(false);
lineChart.setVerticalGridLinesVisible(假);
lineChart.getXAxis().setVisible(false);
lineChart.getYAxis().setVisible(false);
lineChart.getStylesheets().addAll(getClass().getResource(“chart.css”).toExternalForm());
获取数据().add(createChartSeries());
lineChart.getData().add(createChartSeries2());
StackPane root=新的StackPane();
root.getChildren().addAll(条形图、折线图);
场景=新场景(根,800600);
舞台场景;
stage.show();
}
私有XYChart.Series createChartSeries(){
XYChart.Series系列=新的XYChart.Series();
series.getData().add(新的XYChart.Data(“frf”,68));
series.getData().add(新的XYChart.Data(“fef”,67.82));
series.getData().add(新的XYChart.Data(“fdf”,50));
series.getData().add(新的XYChart.Data(“fsf”,43.15));
series.getData().add(新的XYChart.Data(“faf”,70));
series.getData().add(新的XYChart.Data(“fxf”,68,34));
series.getData().add(新的XYChart.Data(“dd”,60.82));
series.getData().add(新的XYChart.Data(“ddd”,50));
series.getData().add(新的XYChart.Data(“dyy”,80.15));
series.getData().add(新的XYChart.Data(“ccc”,85));
返回序列;
}
私有XYChart.Series createChartSeries2(){
XYChart.Series系列=新的XYChart.Series();
series.getData().add(新的XYChart.Data(“frf”,67));
series.getData().add(新的XYChart.Data(“fef”,67));
series.getData().add(新的XYChart.Data(“fdf”,67));
series.getData().add(新的XYChart.Data(“fsf”,67));
series.getData().add(新的XYChart.Data(“faf”,67));
series.getData().add(新的XYChart.Data(“fxf”,67));
series.getData().add(新的XYChart.Data(“dd”,67));
series.getData().add(新的XYChart.Data(“ddd”,67));
series.getData().add(新的XYChart.Data(“dyy”,67));
series.getData().add(新的XYChart.Data(“ccc”,67));
返回序列;
}
公共静态void main(字符串[]args){
发射(args);
}
}
结果是:

您必须设置:

  • lowerBound—此轴的下限

  • 上限-此轴的上限

  • 勾号单位-勾号单位,即勾号之间的间距

    final NumberAxis yAxis = new NumberAxis(0,100,10);
    
您必须设置:

  • lowerBound—此轴的下限

  • 上限-此轴的上限

  • 勾号单位-勾号单位,即勾号之间的间距

    final NumberAxis yAxis = new NumberAxis(0,100,10);
    

你能解释一下问题出在哪里吗,因为我看不到好的图片。是的,当然,正如你所看到的,条形图的系列值大于线形图的系列值,但结果是线形图显示的比条形图多。你能解释一下问题出在哪里吗,因为我看不到好的图片。是的,当然,如您所见,条形图的系列值比线形图的系列值大,但在结果中,线形图显示的值大于条形图