如何在X轴上的JavaFX条形图中按月分组?
问题描述:
我一直在尝试谷歌,但还没有找到如何做一个像下面的条形图的答案。 是否有可能使用JavaFX做图表,其中月份按x轴上的年份分组,同时显示月份和年份,如果是,应如何完成?如何在X轴上的JavaFX条形图中按月分组?
参考图表:
Chart http://i67.tinypic.com/lhe6t.jpg
请忽略堆叠酒吧。我只想将月份和年份都设置为x轴,而不必每个月重复一次。
答
只需在一个月内添加年份即可。几个月必须是不同的,所以我经过一番
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();
}
[你尝试过什么到目前为止不工作(http://whathaveyoutried.com)添加不可打印的空?将您的代码作为问题的一部分发布。 – ManoDestra
您将要采用的方法是子类'Axis'(可能更具体地说,子类'Axis')。这不是一件容易的事情(对于这个论坛来说真的太广泛了),因为图表API不适合这种定制(imho)。除了重写抽象方法外,还需要重写'layoutChildren()'方法。文档是有限的,所以你可能需要看[源代码](http://hg.openjdk.java.net/openjfx/8u60/rt/file/996511a322b7/modules/controls/src/main/java/javafx /场景/图表)现有的'Axis'子类。 –
@ManoDestra我还没有尝试过任何东西,因为我不知道从哪里开始。 – Hiltunea