条形图/折线图 - 仅显示最后一个数据点的标签

2024-03-05

我无法获得条形图或折线图来显示 X 轴上的所有标签。正如您在提供的打印屏幕中看到的,只有最新的数据点显示其标签。

这是使用场景生成器时的情况。我是否必须有一个带有用于 CategoriesAxis 的字符串的 ObservableList ?

我已经对我当前的代码做了一个 MVCE:

@FXML
LineChart<String, Integer> lineChart;
@FXML
private Label label;

@FXML
private void handleButtonAction(ActionEvent event) {

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

series1.getData().add(new XYChart.Data<String, Integer>("austria", 300));
series1.getData().add(new XYChart.Data<String, Integer>("rr", 400));
series1.getData().add(new XYChart.Data<String, Integer>("qq", 3003));
lineChart.getData().addAll(series1);

通过您的方法,每次单击按钮时,都会将一个新系列添加到图表中,并且始终具有相同的数据。请注意,对于第二个系列,您将获得所有标签......

另一方面,正如您已经指出的那样,只有一个系列,带有适当的标签,创建一个全球ObservableList,将其添加到系列的开头,然后继续Initialize将系列添加到图表中。

然后,如果您想处理点击事件,只需向该系列添加新值,您就会看到新标签也将被添加。

@FXML private LineChart<String, Integer> lineChart;

private final ObservableList<XYChart.Data<String,Integer>> xyList1 = 
            FXCollections.observableArrayList(
                    new XYChart.Data<>("austria", 300),
                    new XYChart.Data<>("rr", 400),
                    new XYChart.Data<>("qq", 3003));

private final XYChart.Series series1 = new XYChart.Series(xyList1);

@Override
public void initialize(URL url, ResourceBundle rb) {
    series1.setName("Name");
    lineChart.getData().addAll(series1);
}    

@FXML
public void handleButtonAction(ActionEvent e){
    // sample new points
    series1.getData().add(new XYChart.Data<>("Point "+(series1.getData().size()+1), 
            new Random().nextInt(3000)));
}

EDIT

如果您想在每次单击该按钮时添加新系列,您可以按照最初的建议进行操作。

但请注意,这似乎是第一个系列中的一个错误,如果图表是动画的,则仅显示最后一个标签。为了避免这个错误(考虑将其提交到 JIRA),只需禁用动画即可。

如果您想要动画,您可以向图表添加一个侦听器,并在图表至少有一个系列后设置动画。这将起作用:

@FXML private LineChart<String, Integer> lineChart;

@Override
public void initialize(URL url, ResourceBundle rb) {
    // Workaround to allow animation after series is added
    lineChart.getData().addListener(
        (ListChangeListener.Change<? extends XYChart.Series<String, Integer>> c) -> {
            lineChart.setAnimated(c.getList().size()>1);
    });
}    

@FXML
public void handleButtonAction(ActionEvent e){

    XYChart.Series series1 = new XYChart.Series();        
    series1.setName("Series "+lineChart.getData().size() );
    lineChart.getData().addAll(series1);

    series1.getData().add(new XYChart.Data<>("Point "+(series1.getData().size()+1), 
            new Random().nextInt(3000)));
    series1.getData().add(new XYChart.Data<>("Point "+(series1.getData().size()+1), 
            new Random().nextInt(3000)));
    series1.getData().add(new XYChart.Data<>("Point "+(series1.getData().size()+1), 
            new Random().nextInt(3000)));   
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

条形图/折线图 - 仅显示最后一个数据点的标签 的相关文章

随机推荐

  • 更改 WPF 应用程序中的默认打印机

    我正在寻找更改 WPF 应用程序中默认打印机的最佳方法 以下是我们希望应用程序能够执行的步骤 从下拉列表中选择映射到打印机名称的位置 将默认打印机更改为映射名称 启动 IE 并指向 SSRS 报告 然后 用户将从 IE 打印报告 IE 将使
  • 绘图:平行坐标图:轴样式

    我真的很喜欢平行坐标图 情节很好 但我刚刚遇到了一个需要帮助的问题 某些坐标是否可以使用基于 log10 的轴 正如您在下面的示例中看到的 执行 log10 变换可以更好地区分较小的值 然而 通过转换数据 我们失去了解释这些值的能力 我更喜
  • 检查每个 Node.js 请求的身份验证凭据

    我使用 Node js 与 Express 和 connect auth 来对用户进行身份验证 这是请求 index时的验证 if req isAuthenticated res redirect dashboard else res re
  • 将 [0-255] 整数范围转换为 [0.0-1.0] 浮点范围

    在 WxWidget 中 颜色由 RGB 整数三元组表示 要使用 0 0 1 0 浮点三元组表示与其他库交互 需要进行转换 WxPython Numpy 或 Python 中是否已经存在这样的转换函数 您可以将每个元素除以 255 或 25
  • 解析数据 org.json.JSONException 时出错:输入结束于字符 0

    解析 JSON 时出现错误 解析数据 org json JSONException 时出错 在字符 0 处输入结束 错误日志 04 19 20 51 00 635 E ViewRootImpl 24857 sendUserActionEve
  • 自定义 Django 模型字段中的“对象没有属性”

    我正在尝试创建一个 Django 模型字段 该字段表示 HTML 中包含天 小时 分钟和秒文本输入字段的持续时间 并使用 ical 格式 RFC5545 将持续时间存储在数据库中 这与我的问题有关如何在 Django 中创建一个 ical
  • 如何在 Unix 中批量执行 svn mv

    我想将大量文件从一个目录批量移动到svn中的另一个目录 不幸的是 svn 只支持一次移动一个文件 基本上我想移动某种类型的文件 xml 到一个完全不同的目录 例如mv foo 酒吧 xml forbar xml 我尝试使用 find 并使用
  • 如何将 PIL 添加到 Eclipse 中的 PyDev,以便我可以导入它并在我的项目中使用它?

    我正在尝试在我的项目中使用 PIL 但 pydev 似乎无法在我的项目中找到它 首先 当我进入 python shell 时我可以看到它 我可以导入它并在 python sys path 中看到它 其次 我将其添加到 eclipse 中的
  • 带有可选小时数的 TimeSpan FormatString

    我有一个时间跨度 ts 主要有分钟和秒 但有时也有几个小时 我想要ts返回一个格式化的字符串 该字符串将给出以下结果 3 30 hours not displayed showing only full minutes 13 30 1 13
  • 取消从应用程序调用 Web 服务

    我有一个 winform 应用程序 有两个按钮 GetData 和 Close 在 GetData 上 我从 Web 服务检索一些数据 而 Close 只是关闭对话框 我在一个单独的线程上调用网络服务 该线程是类实例变量 如果从 Web 服
  • 使用正则表达式进行 C Sharp 文件夹搜索

    从顶级目录获取与特定正则表达式匹配的文件夹列表的最有效方法是什么 我目前只是递归地迭代子文件夹以查看它们是否与正则表达式匹配 如果匹配 我将使用目录路径获取文件名 目前 由于此目录中的文件夹数量较多 使用当前方法进行此搜索大约需要 50 分
  • 如何在反应路由中设置延迟功能?

    如何在 React js 上设置延迟函数 有没有什么方法可以在反应路由中添加或删除类 以便页面可以转换 添加 删除或切换类每次都应该有效 是否可以使用延迟功能添加 删除或切换路由类 或者我可以使用第三方库吗 import React fro
  • 在 Android 中获取 Google 地图时出错

    我正在开发一个 Android 应用程序 该应用程序需要 Google 地图 为此 我在以下链接中使用相同的示例 谷歌地图的链接 http www androidhive info 2013 08 android working with
  • Android-decodeBase64 导致应用程序崩溃

    我必须加密一个字符串 但应用程序无法达到加密方法 它在加载时崩溃 我正在使用 Apache Commons Codec 库 private EditText txtPass EditText findViewById R id txtPas
  • BxSlider 将最后一张幻灯片显示为第一张幻灯片

    我创建了 4 个滑块 最初 所有 4 个滑块都是隐藏的 显示 无 因此我使用此代码在单击其各自类别时显示相关滑块 滑块配置 touchEnabled true hideControlOnEnd true preloadImages all
  • 调用(委托)

    谁能解释一下上面写的这个声明link http msdn microsoft com en us library system windows forms control invoke aspx Invoke Delegate 在拥有该委托
  • 区分不可变对象和可变对象的 const 引用

    C 中是否有任何公认的方法来区分对不可变对象和可变对象的 const 引用 e g class DataBuffer class Params class C public Given references must be valid du
  • HERE 地图 JS API 3.1 - Angular 中样式组“非碰撞”错误

    在使用卫星基础层加载 HERE 地图时 有时会出现此错误 Tangram error Error for style group non collision for tile 13 16 15542 12554 15 Cannot read
  • 如何使 sql 作业步骤退出报告失败

    我有一个sql作业步骤 像这样 Declare Result varchar 255 exec myprocedure Result Result output 我想做的事 如果 Result Error 则将作业标记为失败 我该如何实现这
  • 条形图/折线图 - 仅显示最后一个数据点的标签

    我无法获得条形图或折线图来显示 X 轴上的所有标签 正如您在提供的打印屏幕中看到的 只有最新的数据点显示其标签 这是使用场景生成器时的情况 我是否必须有一个带有用于 CategoriesAxis 的字符串的 ObservableList 我