当前位置: 首页 > 知识库问答 >
问题:

JavaFX LineChart在高值时显示为空

吕鹏
2023-03-14

刚刚遇到javafx.scene.chart.LineChart的问题。当使用高于5E13的双倍值填充图表数据时,该系列碰巧会消失(参见屏幕截图)。

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

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

它似乎是y轴上界属性设置为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个答案

骆照
2023-03-14

最好的方法是做一个除数,然后把你的轴称为数十亿或其他什么的。

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

下面是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
 类似资料:
  • 我有一个应用程序,它有一个列表,当它为空时,它显示“空”,但我想显示任何东西,而不是它,但我不能。我试着做了一个验证,但由于某种原因它仍然显示为null。 代码如下: 但以下是它的表现: 我做错了什么?

  • 我能够输出最高的值,但我似乎不能让它工作时,我这样做。getnames,因为它显示我一个错误 错误是我似乎不能显示关联名称的最高值它只显示余额

  • 我得到了这段代码,我必须选择正确的答案。 现在: a)y值升为幂 b)x所在单元的地址 c)可变单元地址y d)值5 当我在程序中输入它时,我只是弹出,但我不知道那是不是正确的答案。

  • 我有一个数组包含玩家的名字,我想按照数组的顺序显示每个问题中玩家的名字,例如arrnames['mark','john','jay'],我想和问题1的mark,问题2的john一起显示。 这是我正在尝试的,但我只得到数组中的最后一个值,我如何修复它?

  • 我有一个数组包含玩家的名字,我想按照数组的顺序显示每个问题中玩家的名字,例如arrnames['mark','john','jay'],我想和问题1的mark,问题2的john一起显示。 这是我正在尝试的,但我只得到数组中的最后一个值,我如何修复它?

  • 如果值为空,则需要在单元格中显示一个不间断的空格。这是我的模板: 我试过这个,但不管用: 它返回值的问题是: 如果许可证号带有值,则单元格为空,行颜色如下所示。 利用卢库马的建议,它表明了这一点: 更改筛选器中的if语句后,仍然不显示非值: