JavaFX XYChart 对数图

2024-04-01

我有一个 XYChart 将数据绘制为 Y 轴上的线性步骤,我想绘制为对数或半对数 Y 刻度,如何更改我的以下代码?

public class BaseXYChart extends Application {

@Override
public void start(Stage stage) {
   stage.setTitle("Linear plot");

   final CategoryAxis xAxis = new CategoryAxis();
   final NumberAxis yAxis = new NumberAxis(1, 22, 0.5);

   yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis){
        @Override
    public String toString(Number object){
        return String.format("%7.2f", object);
    }
});
final LineChart<String, Number>lineChart = new LineChart<String, Number>(xAxis, yAxis);

   lineChart.setCreateSymbols(false);
   lineChart.setAlternativeRowFillVisible(false);

   XYChart.Series series1 = new XYChart.Series();

    series1.getData().add(new XYChart.Data("Jan", 1));
    series1.getData().add(new XYChart.Data("Feb", 1.5));
    series1.getData().add(new XYChart.Data("Mar", 2));
    series1.getData().add(new XYChart.Data("Apr", 2.5));
    series1.getData().add(new XYChart.Data("May", 3));
    series1.getData().add(new XYChart.Data("Jun", 4));
    series1.getData().add(new XYChart.Data("Jul", 6));
    series1.getData().add(new XYChart.Data("Aug", 9));
    series1.getData().add(new XYChart.Data("Sep", 12));
    series1.getData().add(new XYChart.Data("Oct", 15));
    series1.getData().add(new XYChart.Data("Nov", 20));
    series1.getData().add(new XYChart.Data("Dec", 22));

    BorderPane pane = new BorderPane();
    pane.setCenter(lineChart);          
    Scene scene = new Scene(pane, 800, 600);
    lineChart.getData().addAll(series1);

    stage.setScene(scene);

    stage.show();
}

public static void main(String[] args) {
    launch(args);
}

}

谢谢大家


我认为这在 JavaFX Vanilla 中是不可能的。但你可以在这里看看:http://blog.dooapp.com/2013/06/logarithmic-scale-strikes-back-in.html http://blog.dooapp.com/2013/06/logarithmic-scale-strikes-back-in.html

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

JavaFX XYChart 对数图 的相关文章

  • Javafx 2 图表通过手绘调整大小

    我有一个在 JavaFX 2 0 中徒手绘制 XYChart 的代码 调整图表大小时遇到 问题 当我调整大小时 我遇到了徒手绘制的翻译问题 当我调整大小时 新绘图最初看起来超出了比例 但经过一点 图表移动 后 绘图它会自行修复 我该如何改进
  • 在 JavaFX 中创建行索引列

    我有一个 JavaFX TableView 我正在用 ObservableList 的任务填充它 我一直在尝试创建一个显示每行索引的列 该索引用作表中任务的 ID 但我尝试过该方法here https stackoverflow com q
  • 像在场景生成器中一样实现拖放

    我正在 JavaFx 2 2 中构建一个应用程序 其中包含一个拆分面板 左侧有一个组件面板 右侧有一个工作表 基本上我想做的是一个简单的所见即所得编辑器 您可以在其中将组件从左向右拖动 然后将它们排列在右侧 在过去的几天里 我一直在尝试实现
  • 仿射变换适用于图形,不适用于文本和标签

    这篇文章是我对问题的回答的套件 变换形状 https stackoverflow com questions 15734388 transforming a shape 这是我想要的图像 这是一个简单程序生成的图像 您可以看到文本被旋转 我
  • 在JavaFX中后台执行任务

    我想在 TilePane 中加载最多九个面板 对于每个窗格 我必须首先运行内容计算 大约 300 毫秒 然后必须构建面板 大约 500 毫秒 我想要的是 有九个 ProgressIndicators 在计算后与每个面板进行交换 我尝试过Pl
  • 使用转换后的边界进行布局

    我已经缩放了窗格中的一个节点 但窗格的布局考虑了边界 没有任何转换 我希望它考虑到转换后的边界 例如 和代码 import javafx application Application import javafx geometry Pos
  • 将多个 jar 合并为一个(使用 Maven)

    我在 javafx 中有一个项目 我有 3 个依赖项 我尝试使用 maven 将它们与我的主体 jar 结合起来 结果我得到了一个罐子 1 82mb 但是当我点击他时 他没有启动提示出现 pom xml
  • TriangleMesh JavaFX 中 getNormals() 方法的用途是什么

    我目前正在开发 JavaFX 3D 应用程序 并在 TriangleMesh 类中遇到 getNormals 方法 正如 Triangle Mesh 类用于创建用户定义的 Java FX 3D 对象一样 其中getPoints 用于添加Po
  • 在 Swing JFrame 上添加 WebView 控件

    我正在开发与 JavaFX 控件混合的 Swing 应用程序 我创建了一个 JavaFX 控件 WebView 浏览 HTML 文件 但我想要 要知道 如何在 Swing 的容器上添加此 Web 视图控件JFrame 鉴于已经存在jFram
  • 如何在单击按钮时从 JavaFX WebView 调用 JavaScript 函数?

    我正在尝试从 JavaFX 调用 JavaScript 函数WebView http docs oracle com javafx 2 api javafx scene web WebView html在 JavaFX 按钮单击事件上 我正
  • 转换为 UI 的记录器条目随着时间的推移停止更新

    我有一个 javafx concurrent Task 在后台运行一些代码并使用 java util logging Logger 提供有关其状态的信息 我需要在主线程的 UI 中显示此日志条目 我怎样才能做到这一点 这是我制作的一个简单的
  • 如何保存 JavaFX GUI 状态?

    是否有一种现有的简单方法来持久保存 JavaFX GUI 状态 包括节点的 userData 字段的自定义 反 序列化 None
  • 如何在Javafx的initialize()方法期间在后台加载大文件?

    我的 javafx 桌面应用程序在应用程序初始化期间加载和大文本文件 Override public void initialize URL url ResourceBundle rb loadAppConfigurationFile pr
  • 在 JavaFX 中使用 MouseEvent 和 MouseClicked 选择并移动 Canvas 图像

    我有一个应用程序的示例 用于绘制图片GraphicsContext并如下图所示工作 问题是select and move只有blue circle水平地与Canvas MouseEvent and MouseClicked public c
  • 在 64 位机器中创建 32 位 JavaFx Native Bundle

    我的机器和 IDE 的配置如下 产品版本 NetBeans IDE 7 2 内部版本 201207171143 爪哇 1 7 0 07 Java HotSpot TM 64 位服务器虚拟机 23 3 b01 系统 Windows 7 版本6
  • JavaFX 2.2 不可见节点的鼠标事件

    我正在尝试接收 JavaFX 2 2 中不可见节点的 MouseEvents 将其视为一个交互式但不可见的区域 例如当鼠标悬停在其上时应触发操作 问题是 这不是静态定义的区域 而是有多个区域 很多 可以由应用程序移动和调整大小 因此 对于我
  • NullPointerException 加载 fxml

    我想在我的应用程序中加载 fxml 文件 我使用下一个代码 try FXMLLoader loader new FXMLLoader loader setController null loader setRoot null loader
  • 如何获取javafx imageView中显示图像的宽度/高度?

    我需要获取 imegView 中显示图像的宽度 高度 并将其与 imageView getImage getWidth getHeight 中的原始图像大小进行比较 并在用户从应用程序 GUI 中调整其大小时监听更改 I get this
  • JavaFX 中 ImageView 的顺序转换

    我已经看过了如何在 javafx 2 1 中等待转换结束 https stackoverflow com questions 11188018 how to wait for a transition to end in javafx 2
  • 如何在javafx中获取当前屏幕详细信息?

    我的电脑连接了多个显示器 从 javaFX 我可以获得主屏幕 但我需要了解当前舞台所在屏幕的屏幕详细信息 我怎样才能得到它 尝试使用获取矩形屏幕 http docs oracle com javafx 2 api javafx stage

随机推荐