LineChart FX - 删除实线

2023-12-14

我有一个关于图表 LineChart JavaFX 的好奇问题。

I have this graph: Grapg dots forming a "jump" on the X axis (as shown by the two red points I scored) and therefore JavaFX draws me the line between these two points. How do I remove that line between each "jump"?

我发布代码:

public class ControllerIndividua {

    public static void plotIndividuaFull(String path, Stage stage, String name) {
        final NumberAxis xAxisIntensity = new NumberAxis(); //Dichiarazione asseX
        final NumberAxis yAxisIntensity = new NumberAxis();//Dichiarazione asseY

        DetectionS1.countS1();

        //Dichiarazione del tipo di grafico
        final LineChart<Number, Number> lineChartIntensity = new LineChart<Number, Number>(xAxisIntensity,yAxisIntensity);

        ArrayList<Double> extractedData; //Lista dei valori dello dell' intensità
        ArrayList<Double> extractedTime; //Lista del tempo
        ArrayList<Double> extractedS1; //Lista del tempo
        ArrayList<Double> extractedS1Time; //Lista del tempo

        //Gestione e settaggio del grafico
        lineChartIntensity.getData().clear();

        try {
            //Popolamento delle liste
            extractedTime = IntensityExtractor.pointsTime();
            extractedData = IntensityExtractor.pointsIntensity();
            extractedS1 = DetectionS1.S1pitch();
            extractedS1Time = DetectionS1.pointsS1Time();
            XYChart.Series<Number, Number> series = new XYChart.Series<Number, Number>();
            XYChart.Series<Number, Number> seriesS1 = new XYChart.Series<Number, Number>(); //Creazione seconda serie
            series.setName("Intensità di:\t" + name.toUpperCase());

            for (int j = 0; j < extractedS1.size(); j++) {
                seriesS1.getData().add(new XYChart.Data<Number, Number>(extractedS1Time.get(j), extractedS1.get(j)));
                lineChartIntensity.getStyleClass().add("CSSintensity");
            }

            //Creazione finestra e stampa del grafico
            Scene scene = new Scene(lineChartIntensity, 1000, 600);
            lineChartIntensity.getData().addAll(series,seriesS1);
            scene.getStylesheets().add("application/application.css");
            stage.setScene(scene);
            stage.show();
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
    }
}

有人也对我该怎么做有一点想法吗?

谢谢大家。


这是一个老问题,有一个公认的答案,但我遇到了它并且很好奇。我想知道是否可以在LineChart(至少无需创建自定义图表实现)。事实证明是有的。该解决方案有点老套且脆弱。它涉及到获得Path通过使用XYChart.Series.getNode()并操纵列表PathElements。下面的代码给出了一个例子:

import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        LineChart<Number, Number> chart = new LineChart<>(new NumberAxis(), new NumberAxis());
        chart.getXAxis().setLabel("X");
        chart.getYAxis().setLabel("Y");
        chart.setLegendVisible(false);
        chart.getData().add(new XYChart.Series<>());

        for (int x = 0; x <= 10; x++) {
            chart.getData().get(0).getData().add(new XYChart.Data<>(x, Math.pow(x, 2)));
        }

        /*
         * Had to wrap the call in a Platform.runLater otherwise the Path was
         * redrawn after the modifications are made.
         */
        primaryStage.setOnShown(we -> Platform.runLater(() -> {
            Path path = (Path) chart.getData().get(0).getNode();
            LineTo lineTo = (LineTo) path.getElements().get(8);
            path.getElements().set(8, new MoveTo(lineTo.getX(), lineTo.getY()));
        }));

        primaryStage.setScene(new Scene(new StackPane(chart), 500, 300));
        primaryStage.setTitle("LineChart Gap");
        primaryStage.show();
    }

}

该代码产生以下结果:

Screenshot of LineChart with gap in the line

这是可能的,因为ObservableList of PathElements 似乎是一个MoveTo后面跟着一堆LineTos。我简单地选了一个LineTo并将其替换为MoveTo到相同的坐标。我还没弄清楚哪个索引LineTo与哪个匹配XYChart.Data,然而,并选择了8随机的例子。

该解决方案存在几个问题。第一个也是明显的一个是,这依赖于内部实现LineChart。第二个是真正的脆弱性的来源。对数据的任何更改,无论是轴的值范围、图表的宽度或高度,还是几乎anything导致图表重新绘制本身将导致Path重新计算和重新绘制。这意味着如果您使用此解决方案,则必须重新应用修改每次图表会自行重绘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LineChart FX - 删除实线 的相关文章

  • 更改在不同场景中输入的新场景中的标签文本(javafx)

    我正在尝试更改标签中的文本 该文本是在不同场景的文本字段中输入的文本 我制作了 2 个 FXML 文件 第一个包含一个文本字段和 确定 按钮 第二个包含一个标签 带有文本 标签 我的目标是在文本字段中输入文本 当我按 确定 gt 打开新场景
  • JavaFX 模块对于 VM 不可见

    我使用 Intellij Idea 作为我的 IDE 由于我需要使用 css 文件 因此我安装了 Intellij Ultimate 现在 javaFx 不适用于它们 抛出异常 boot层初始化时出错 java lang module Fi
  • 在 Javafx 中单击内部时,透明舞台不应最小化

    我正在学习在 JavaFx 中创建屏幕录制应用程序 我希望用户调整矩形的大小来决定屏幕捕获区域 我已将舞台和场景设为透明primaryStage initStyle StageStyle TRANSPARENT and scene setF
  • 为 tableView JavaFx 中没有第一个(行数)的列设置 CONSTRAINED_RESIZE_POLICY

    我的 tableView 的第一列为行号 我想为没有第一个列的所有列设置 CONSTRAINED RESIZE POLICY I made First column implementation column setPrefWidth 40
  • ObservableList 不更新 ArrayList

    对于学校作业 我们正在使用 JavaFX 中的 ObservableList 对象 对吗 我已经为此工作了一天多了 但无法弄清楚 老师只告诉我们 谷歌一下 所以这也没有帮助 基本上 我们正在开发一个基本的管理应用程序来跟踪人们及其家人 人们
  • 如何将 CSS 样式表附加到 FXML?

    遵循 Oracle 教程http docs oracle com javafx 2 get started fxml tutorial htm http docs oracle com javafx 2 get started fxml t
  • 如何在 Java FX 中以编程方式模拟箭头键按下

    我想让我的 JFX 应用程序模拟箭头键按下 当它们在 TextField 中注册时 但我不知道如何发送字符串或字节以外的任何内容 我正在想象这样的事情 static EventHandler
  • 在模块路径上使用 OpenJFX 11 JMODS 在 JDK 11 上运行 javafx 示例

    我已经从 OpenJFX 项目下载了 JavaFX Jmod 文件并将它们放在目录中G openjfx javafx jmods 11 我使用的是 OpenJDK 11 其中没有 JavaFX jmodJAVA HOME jmods即它不附
  • 我在使用 JavaFX 绘制十字时遇到问题

    我正在尝试编写代码 在网格上对角绘制 3 个形状 前两个形状是正方形和圆形 我能做到 然而 第三种形状让我有些悲伤 我应该画一个十字 T 版本 而不是 X 每次我写出代码时 它看起来就像一个侧面 我知道我只是错过了一些简单的东西 但我真的很
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • JavaFX 脚本和 Java

    简单的问题 我可以在桌面应用程序中混合 Java 和 JavaFX Script 代码吗 如果可能的话 您能给我提供一些示例链接吗 或者我可以将定制的 javafx CustomNode s 打包在 jar 中 并在我的项目中与标准 SWI
  • 如何减少 Android 布局中文本之间的行距?

    我想减少所附布局中文本之间的行距 User12 5 部电影 改进 2 5 下面是 xml 我尝试删除 singleLine true 语句并尝试将其设置为 false
  • JavaFX:在 WebView img 标签中未加载本地图像

    以下是我的代码 一切安好 我可以加载远程页面 我可以放置 HTML 内容 但我的img标签显示一个X标志表示无法加载图像 Note 我的图像与类位于同一个包中JavaFX在 Smiley 文件夹中 我可以列出所有图像 这意味着路径没有问题
  • JAVAFX制作动态文本区域大小

    我正在使用 JAVAFX 制作聊天应用程序 消息显示在textArea中 但textArea始终具有相同的大小 如何使 textArea 完全适合文本量 氨氮 下面的代码正是你想要的 public class Main extends Ap
  • 在javafx中加载多个fxml

    我已经寻找了一段时间 但一直没能得到我想做的事情 我一直在使用 javafx 框架在这个线程中的 javafx 中切换 fxml 在同一场景中加载新的 fxml https stackoverflow com questions 18619
  • JavaFX 中画布的最大尺寸

    有谁知道JavaFX中画布的最大尺寸 从一些测试来看 它似乎是 8192 与 IE 相同 在我看来 这很奇怪 或许 可以修改吗 这可能取决于您的显卡的最大纹理大小 因为我相信 使用最常见的硬件加速渲染管道 画布最终将表示为纹理 我不太清楚
  • 在gnuplot中绘制两点之间的线

    我有一个 csv 文件 其格式如下 有四列 作为MWE xcoord1 ycoord1 xcoord2 ycoord2 0 1 0 2 0 4 0 3 0 5 0 3 0 7 0 5 我想从每个xcoord1 ycoord1 to xcoo
  • JavaFX 绑定失败并显示“无法绑定到无类型对象”。

    我有一个定义 JavaFX 用户界面的 FXML 文件 在 FXML 文件中 我有以下内容
  • 如何隐藏TabPane中的TabBar?

    我正在尝试使用构建下一个 上一个窗口TabPane 我决定使用TabPane因为它易于使用和设计场景生成器 在应用程序启动时 我用它来隐藏TabBar目前 tabPane setTabMinHeight 10 tabPane setTabM
  • JDK 11/JavaFX:如何在没有构建/依赖管理的情况下制作胖罐子?

    我认为不用说 我应该能够使用 Oracle 自己的 JDK 和 JavaFX 来自 gluonhq 来构建用户可以使用的可分发 jar 文件 经过详尽的搜索 大量阅读 过去几个月 24 小时或更长时间 最后是这个 Google 搜索查询 h

随机推荐

  • 从广播接收器或服务启动 Android TTS

    我正在尝试让 TTS 在后台运行 但是 我从来没有听到任何声音 我有一个启动服务的广播接收器 我将我的 TTS 代码放入其中 但它从不说话 我知道该方法正在被调用 我在上面设置了断点 但它仍然不起作用 这是我的日志 但它似乎不包含有关 TT
  • 使用 Web 插件时,UFT 如何执行 Click 方法?

    我正在使用 UFT 11 50 在 Internet Explorer 8 0 上测试高度基于 javascript 的应用程序 我想知道使用 Web Add In 时 UFT 如何在后台实现 Click 方法 UFT 是否发送 Windo
  • 如何在 Angular $http 服务中确定请求的优先级?

    我正在开发一个具有大量延迟数据加载的应用程序 我想根据 优先级 参数对 http 请求进行优先级排序 这就是使用它的概念 http get url params query priority 1 我正在考虑使用 http 拦截器 像这样的东
  • Java 和 SQLite [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我被单个文件数据库提供的整洁所吸引 有哪些驱动程序 连接器库可以通过 Java 连接和使用 SQLite 我发现了一个包装库 http www ch werner de javasq
  • 结合 Jackson @JsonView 和 @JsonProperty

    有没有一种方法不仅可以通过在 JsonView 中使用不同的类来查看 隐藏字段 还可以根据分别用于每个字段的视图定义不同的名称 如 JsonProperty 问候并谢谢 蒂姆 我的解决方案包括杰克逊 米辛特征 我使用相同的视图类来放置不同的
  • 当 foo 由类 ArrayList 而不是接口 List 表示时,使用它不是更容易吗?

    我经常看到这种语法 但不明白其背后的推理 我认为您通常希望使用类而不是接口 以便更轻松地执行您可能想要执行的全部操作 为什么要这样做 List
  • 标签框中的换行符

    我怎样才能换行label box使用 C 这是我的代码 用于在标签框中显示数据库中的值 protected List
  • 将 ArrayList 参数传递给控制器​​操作 ASP.NET MVC

    我正在编写一个应用程序 其中我需要将 System Collections ArrayList 数据作为参数从一个控制器操作发送到另一个控制器操作 我在用 return RedirectToAction action1 controller
  • 我什么时候应该打电话给super?

    最好用什么 super any method name 最近我发现在 dealloc 中 super dealloc 必须站在同一立场上 因为如果我们在之后设置它 之前没有使用过的任何变量都可能被垃圾填充 super dealloc 这是一
  • 用于计算英国邮政编码之间距离的库

    我正在寻找一种方法来计算两个英国邮政编码之间的近似距离 直线距离足够好 以分析数据 最好可以通过 java 轻松访问 但 C 本机 C 等也可以 首先 您需要将邮政编码转换为有用的坐标 例如 邮政编码查找表中的东距和北距值 如下所示 htt
  • R 中一百万个观测值的 Kmeans - 绘制集群时遇到的问题

    我正在尝试对超过 100 万行执行 KMeans 聚类 其中有 4 个观察值 全部为数字 我正在使用以下代码 kmeansdf lt as data frame rbind train V3 train V5 train V8 train
  • 如何使用 AngularJS 在点击时对列进行反向排序

    我有一个简单的方法来对表列进行排序 但我无法找到一种方法来在单击和返回时反向排序之间进行交替 有人对这个问题有任何解决方案吗 下面是一个小提琴 向您展示我的意思 div div p orderProperty p div class col
  • iPhone应用程序全屏发送电子邮件

    我正在开发一个 iPhone 应用程序 用于使用内置图形和用户定义的文本创建图像 我希望能够拥有带有内置图形和用户定义文本的应用程序 然后可以将其作为单个图像 很像屏幕截图 发送到电子邮件应用程序以通过电子邮件发送 有没有一种方法可以做到这
  • 如何检查应用程序是否可移动到 SD

    我想知道如何通过代码检查应用程序是否可以移动到SD 我知道如何获取已安装的应用程序列表以及它是否在 SD 卡上 如果 ApplicationInfo 标志包含 ApplicationInfo FLAG EXTERNAL STORAGE 那么
  • System.IO.IOException:“该进程无法访问该文件,因为该文件正在被另一个进程使用”

    我正在尝试保存我的 txt 文件 但是当我这样做时 标题中出现错误 如果我使用 CreateNew 我不会收到错误 但我想保存到现有文件中 private void OpenFile MouseDown object sender Mous
  • 唤醒锁不工作

    我设置了唤醒锁 这样当屏幕超时或按下屏幕锁定按钮时我仍然可以听到声音 据我通过在线阅读了解到的是 我只需要部分唤醒锁 这是代码 但它不起作用 没有 logcat 错误 package com androidsleepmachine gamb
  • 在 Go 中创建空闲超时?

    我将 CloudFlare 用于我的一个大容量网站 它位于我的堆栈前面 问题是 CloudFlare 除了创建新连接之外 还使空闲连接保持打开状态 这不是我可以更改的设置 当我让 Varnish 或 Nginx 坐在前面侦听端口 80 时
  • 如何在不运行 Bash 脚本的情况下对其进行语法检查?

    是否可以在不执行 bash 脚本的情况下检查它的语法 使用 Perl 我可以运行perl c script name bash 脚本有等效的命令吗 bash n scriptname 也许有一个明显的警告 这会验证语法 但不会检查您的 ba
  • Android中的App如何以全屏模式运行

    当我将它运行到选项卡中时 我创建了一个应用程序 然后它不会全屏显示 我还完成了它的属性 全屏无标题栏 所以它没有标题 thanks 你可以加android theme android style Theme NoTitleBar Fulls
  • LineChart FX - 删除实线

    我有一个关于图表 LineChart JavaFX 的好奇问题 I have this graph dots forming a jump on the X axis as shown by the two red points I sco