【问题标题】:Advanced charting or plotting in JavaFx?JavaFx 中的高级图表或绘图?
【发布时间】:2014-12-19 06:36:54
【问题描述】:

我正在寻找一种方法来提供比基本 JavaFx 图表提供的更多功能。

  • 为散点添加自定义文本标签
  • 在图表内绘制一些线条
  • 可能是单个散点的自定义颜色

我已经看到一些人使用透明背景覆盖的多个图表。我不确定这是否是适用于 JavaFx 未来更新的好解决方案。

现在我正在寻找建议。提前致谢!

【问题讨论】:

  • 请不要一问四问。
  • 这是一个问题。我正在寻找符合我要求的图表解决方案。
  • 这是一个老问题,但对于新观众来说,这是一个虚假的要求。基本的 JavaFX 图表包以及一些自定义功能可以完成此人在其“要求”中列出的所有操作。
  • 查看Chart-fx。看起来很有希望。

标签: charts javafx real-time javafx-8


【解决方案1】:

我花了很多时间寻找一个免费的 Java 绘图库,它兼容 Eclipse 公共许可证(JFreeChart 不兼容),支持 SVG 导出(JavaFx 图表不支持),让我详细说明绘图。绘图功能应该类似于基于python和QT的免费科学绘图工具Veusz的功能。例如,Veusz 允许设置次要刻度的方向和大小以及我想要调整的所有其他内容。

我使用了 JavaFx 的图表功能 并尝试编写一个从 JavaFx 到 SVG 的转换器......但在经历了一定的挫折后停止了: https://github.com/stefaneidelloth/JavaFxNodeToSvg

最后我决定写 javafxd3,一个基于 WebView 和 gwt-d3 代码的 d3.js 的 Java 包装器:

https://github.com/stefaneidelloth/javafx-d3

该包装器应用在我的主项目 Treez 中,为 Eclipse 中的科学绘图提供一些原子:

https://github.com/stefaneidelloth/treez

如果您不需要在 Java 和 JavaScript 之间传输大量数据,javafxd3 可以很好地工作。 WebView 有一些性能问题/限制,可能与更高级的应用程序相关。查看 javafxd3 的演示套件以了解这些限制并阅读

Performance of WebView in JavaFX

借助 javafxd3 的包装策略,还可以将 plotly.js 和其他基于 d3.js 的 高级 JavaScript 绘图库用于您的 JavaFx 应用程序。

在过去的两年里,JavaFx 并没有太大的进步。 SceneBuilder 已被 Oracle 抛弃,JavaFx 可能是一条死胡同。如果 JavaFx 的图表功能不符合您的需求,并且您不想使用我的 JavaScript 嵌入工作围绕 javafxd3 ...请检查 JFreeChart 是否满足您的许可需求和特点:

http://www.jfree.org/jfreechart/

如果你真的不限于 Java,我会推荐 Veusz/Python:

https://veusz.github.io/

或者直接使用一些 JavaScript 库:

https://d3js.org/

https://plot.ly/javascript/

编辑

我不再使用 Java 和包装器,而是直接使用 JavaScript。

【讨论】:

    【解决方案2】:

    我没有确切的解决方案,但我有类似的需求。我发现大多数编程语言中的图表库都相当糟糕。

    但是,我发现 JavaScript 有大量优秀的图表(绘图)库可供选择。

    我的建议是使用 webview,然后使用 JavaScript 和 html 使用 d3 或dimple 之类的库在其中显示图表。如果您不懂任何 CSS/html/JavaScript,可能会有学习曲线。

    【讨论】:

    • 基本的 JavaFX 图表库加上一些自定义可以完成关于代码页面的所有要求。引入 webview 解决方案会降低性能并导致解决方案过于复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2014-02-26
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多