java - 在 JavaFX XYSeries 中查找最大 Y

标签 java javafx javafx-8

series.getData().add(new XYChart.Data(x ,function(x));

我尝试获得函数(x)的最大值;我知道我可以使用“series.getData().sort”

但是当我写

series.getData().sort(Comparator.comparingDouble(d -> d.getYValue().doubleValue()));

它说无法解析方法getYValue; 如何解决这个问题?

最佳答案

您不太可能想要对数据进行排序,这可能会扭曲图表的含义。相反,从所需的系列中获取数据流并调用 max()方法,如@fabian suggests .

使用来自ensemble.samples.charts.line.chart.LineChartApp的数据举个例子,

ObservableList<XYChart.Series<Double, Double>> lineChartData = FXCollections.observableArrayList(
    new LineChart.Series<>("Series 1", FXCollections.observableArrayList(
        new XYChart.Data<>(0.0, 1.0),
        new XYChart.Data<>(1.2, 1.4),
        new XYChart.Data<>(2.2, 1.9),
        new XYChart.Data<>(2.7, 2.3), //max
        new XYChart.Data<>(2.9, 0.5))),
    new LineChart.Series<>("Series 2", FXCollections.observableArrayList(
        new XYChart.Data<>(0.0, 1.6),
        new XYChart.Data<>(0.8, 0.4),
        new XYChart.Data<>(1.4, 2.9), //max
        new XYChart.Data<>(2.1, 1.3),
        new XYChart.Data<>(2.6, 0.9)))
    );

以下片段产生预期输出 forEach()系列。

lineChartData.forEach((series) -> {
    System.out.println(series.getData().stream().max(
        Comparator.comparing(XYChart.Data::getYValue)).get().getYValue());
});

控制台:

2.3
2.9

关于java - 在 JavaFX XYSeries 中查找最大 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866507/

相关文章:

Java - 无法找到肯定存在的文件路径

java - 如何通过另一种方法与 JavaFX 类中的 PrimaryStage 进行交互?

JavaFX TableView String[] 列和 String[][] 值

java - 获取意外元素 '{urn:infinispan:config:7.0}infinispan' 遇到

java - 解析 XML 文件并跳过标签

java - 如何使用对象创建 JavaFX 树

java - 为什么 SortedList.add() 抛出 UnsupportedOperationException?

canvas - 我如何 "highlight"或在 JavaFX 8 Canvas 周围放置边框?

java - 输入标签时鼠标跳跃

java - 弹出窗口删除javafx中的主节点