2

我有一个可能有空值的图表,我也想要修复 X ​​轴刻度(例如 20 点)。以及绑定到 Y 轴的值(不是空值 ex.10 值)。

我想要的图表

[更新]

String [] categories = {"32-11, 33-11, 34-11, 35-11, 36-11, 37-11, 38-11, 39-11, 40-11, 41-11, 42-11, 43-11, 44-11, 45-11, 46-11, 47-11, 48-11, 49-11, 50-11, 51-11"};
LineChart<String, Number> myChart;
CategoryAxis xAxis;
NumberAxis yAxis;

yAxis = new NumberAxis();
xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(categories))); 
xAxis.setAutoRanging(false);

myChart = new LineChart<String, Number>(xAxis,yAxis);

    Series<String, Number> aSeries = new Series<String, Number>();
    for (int i = 0; i < categories.length; i++) {
        aSeries.getData().add(new XYChart.Data(categories[i],"Some Long values and may be null"));
    }

myChart.getData().add(aSeries);
  • 图表绘制无
  • //xAxis.setAutoRanging(false); 图表绘制但具有自动范围。
4

1 回答 1

3

我为我的问题找到了解决方案:

  • 我得到 CategoryAxis 源代码!来自CategorAxis
  • 并添加一行一切顺利。

    public final void setCategories(ObservableList<String> value) {
    categories.set(value);
    invalidateRange(value);  //add that line
    requestAxisLayout();
    }
    

更新:

该问题可以在不更改 CategoryAxis 类的情况下解决,只需将该行添加到我的代码中:

xAxis.setAutoRanging(false); 
xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(categories))); 
xAxis.invalidateRange(Arrays.asList(categories));  // add that line to my code.
于 2013-02-19T12:16:40.110 回答