Javafx图表将NumberAxis更改为CategoryAxis

时间:2016-05-23 14:51:34

标签: java javafx charts fxml scenebuilder

我在X轴上使用带有AreaChart的SceneBuilder创建了一个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转换为AreaChart,Y轴为NumberAxis,X轴为CategoryAxis。 因为我必须制作一个Heigth x Distance图表,然后按一个按钮将该图表转换为Height x Time图表 按下按钮后的结果必须是:

<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 个答案:

答案 0 :(得分:1)

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

相反,我建议:

  1. 创建两个图表。
  2. 一次使用CategoryAxis,另一次使用NumberAxis。
  3. 在两个图表中添加类似数据(但可能不同)的系列。
  4. 将两个图表放在StackPane中。
  5. 添加ToggleButtonToggleSwitchCheckBoxRadioButton(某种切换控件),以在两种状态之间切换。
  6. 将一个图表的可见性绑定到切换的选定状态,并将另一个图表的可见性绑定到切换的选定状态。
  7. 这应该允许您根据需要显示具有适当轴类型的相应图表。