首页 文章

JavaFX LineChart在高值时显示为空白

提问于
浏览
1

刚遇到javafx.scene.chart.LineChart的问题 . 当使用高于5E13左右的Double值填充图表数据时,系列恰好消失(见屏幕截图) .

Before
chart before

After
chart before

以防万一:我正在使用以下代码添加数据

chart.getData().clear();
chart.getData().add(new XYChart.Series<>("Simulation name", sim.getDataAsList()));

似乎是y轴的upperBound属性设置为NaN

NumberAxis axis = (NumberAxis) chart.getYAxis();
        axis.upperBoundProperty().addListener(new ChangeListener<Number>() {

            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                if(Double.isNaN(newValue.doubleValue())){
                    System.out.println("upperBound is NaN");
                }
            }
        });

请帮助任何人!

1 回答

  • 0

    如果你只是做一个除数并称你的轴数十亿甚至更多,可能是最好的 .

    否则,您可以自己设置范围并提供格式化程序 .

    这是NumberAxis.java的一个片段

    /** We use these for auto ranging to pick a user friendly tick unit. We handle tick units in the range of 1e-10 to 1e+12 */
        private static final double[] TICK_UNIT_DEFAULTS = {
            1.0E-10d, ..., 5.0E12d
    

相关问题