如何在X轴上的JavaFX条形图中对月份进行分组?

时间:2016-07-28 14:11:01

标签: java javafx charts

我一直在尝试谷歌,但没有找到如何制作如下图所示的条形图的答案。 是否可以使用JavaFX绘制图表,其中月份按x轴上的年份分组,同时显示月份和年份,如果是,则应如何进行?

参考图表:

Chart http://i67.tinypic.com/lhe6t.jpg

请忽略叠加的条形图。我只对将x轴和月份都放到x轴而不需要在每个月重复这一年感兴趣。

1 个答案:

答案 0 :(得分:0)

只需在其中一个月内添加年份。这几个月必须不同,所以我在一些

之后添加了不可打印的空值
public void start(Stage stage) {
    NumberAxis y = new NumberAxis();
    CategoryAxis x = new CategoryAxis();
    BarChart<String, Number> bc = new BarChart<>(x, y);
    bc.getData().add(new XYChart.Series<>());
    for (int i = 0; i < 24; i++){
        int year = i / 12; 
        String mon = (i % 12 + 1) + "";
        for (int j = 0; j < year; j++) mon += "\0";//needs to be different by year
        bc.getData().get(0).getData().add(
                new XYChart.Data<>(mon.startsWith("6") 
                        ? "   "+mon + "\n" + (year + 2013)
                        : mon, Math.random()));
    }

    Scene scene = new Scene(bc,800,400);
    stage.setScene(scene);
    stage.show();
}

enter image description here