Javafx图表将NumberAxis更改为CategoryAxis

标签 java javafx charts fxml scenebuilder

我使用 SceneBuilder 创建了一个 AreaChart,X 轴上带有 NumberAxis 和 Y 轴上的 NumberAxis

@FXML
private  AreaChart<Number,Number> areaChart;

和 FXML:

<AreaChart fx:id="areaChart" alternativeColumnFillVisible="true" createSymbols="false" style="-fx-horizontal-grid-lines-color: white;" title="Altura durante la sesión">
    <xAxis>
        <NumberAxis fx:id="areaX" animated="false" label="Distancia (metros)"    style="axis_color: white;" />
    </xAxis>
    <yAxis>
        <NumberAxis fx:id="areaY" label="Altura (metros)" style="axis_color:    white;" />
    </yAxis>

我想通过按下按钮将该areaChart转换为在Y轴上带有NumberAxis和在X轴上带有CategoryAxisAreaChart。 因为我必须制作高度 x 距离图表,然后通过按按钮将该图表转换为高度 x 时间图表 按下按钮后的结果必须是这样的:

<AreaChart fx:id="areaChart" alternativeColumnFillVisible="true" createSymbols="false" style="-fx-horizontal-grid-lines-color: white;" title="Altura durante la sesión">
    <xAxis>
        <CategoryAxis fx:id="areaX" animated="false" label="Distancia (metros)"    style="axis_color: white;" />
    </xAxis>
    <yAxis>
        <NumberAxis fx:id="areaY" label="Altura (metros)" style="axis_color:    white;" />
    </yAxis>

最佳答案

我认为尝试更改图表的轴类型不是一个好主意(我什至不确定您是否可以这样做)。

相反,我建议:

  1. 创建两个图表。
  2. 其中一个使用 CategoryAxis,另一个使用 NumberAxis。
  3. 向两个图表添加相似的数据系列(但可能不同)。
  4. 将两个图表放入 StackPane 中。
  5. 添加 ToggleButton , ToggleSwitch , CheckBoxRadioButton (某种切换控制),在两种状态之间切换。
  6. 将一个图表的可见性绑定(bind)到切换的选定状态,并将另一图表的可见性绑定(bind)到非切换的选定状态。

这应该允许您根据需要显示具有适当轴类型的适当图表。

关于Javafx图表将NumberAxis更改为CategoryAxis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37394198/

相关文章:

java - 如何从 JavaFX FileChooser 获取文件路径?

java - key 释放的最后阶段

c# - 甘特图asp.net

java - 如何按每个字符串中元音的数量对字符串数组进行升序排序?

java - Weblogic 12c 启动期间出现的来自 Struts 的额外信息消息

javafx - 如何使用 Java 11 启动 Scenebuilder

charts - 如何更改 NVD3 图表中的图例位置?

charts - 如何为 Kendo DataViz 图表设置背景图像

java - 如何在Java中不创建连接类的情况下解决多对多关系?

java - 是否有使用 mapstruct 的 spring pageable/sort 自动映射