【问题标题】:JavaFX AreaChart - doesn't color area below last pointsJavaFX AreaChart - 最后点以下的区域不着色
【发布时间】:2018-01-09 12:06:46
【问题描述】:

为什么AreaChart没有覆盖线下的所有区域?

这是我图表的 fxml 代码(非常基础):

<AreaChart fx:id="CWTareaLayerChart" prefHeight="547.0" prefWidth="682.0" GridPane.rowIndex="1">
    <xAxis>
        <NumberAxis side="BOTTOM" fx:id="xAxisCWT" />
    </xAxis>
    <yAxis>
        <NumberAxis fx:id="yAxisCWT" side="LEFT" />
    </yAxis>
</AreaChart>

我在 Java 控制器中用@FXML 标签定义了轴。

初始化部分(这个方法从public void initialize(URL location, ResourceBundle resources)调用

private void initializeLayerChart() {
    xAxisCWT.setForceZeroInRange(false);
    yAxisCWT.setForceZeroInRange(true);

    xAxisCWT.setAutoRanging(true);
    yAxisCWT.setAutoRanging(true);

    yAxisCWT.setLowerBound(-5.0);

    xAxisCWT.setLabel("W (%)");
    yAxisCWT.setLabel("avg C (pF)");
}

还有一个刷新按钮,用于刷新系列的内容(可以有一个或多个系列)并重新绘制图表。该方法本身返回 List 并且系列包含 Double 值;然后将系列添加到图表中:

this.CWTareaLayerChart.getData().addAll(allSeries);

结果我得到了这样的东西:

Two series on AreaChart

或者这个:

One serie on AreaChart

我在 setAutoRanging() 和 setForceZeroInRange() 中尝试了不同的真/假组合,也使用了 setLowerBound(),但结果总是类似于图像 - 显示系列的最后一个点,但区域下面没有颜色。

【问题讨论】:

  • 我试图重现您的问题,但我不能。也许您的情节点数据是问题所在。您如何获取绘图点的数据?

标签: java charts javafx-2 stacked-area-chart


【解决方案1】:

您是否尝试设置threshold 参数?

API 参考:
http://api.highcharts.com/highcharts/plotOptions.series.threshold

示例:
http://jsfiddle.net/w5f3Ltcu/

【讨论】:

  • 我没有使用 highcharts 库(它用于 javascript 应用程序,如果我用谷歌搜索的话)但是 javaFX。我想你的阈值参数的替代方案正是setLowerBound() 函数所以是的,我试过了。
猜你喜欢
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 2021-02-06
相关资源
最近更新 更多