作为我的另一个问题的后续,我仍然有那里描述的问题(条之间的大填充),但这次场景使用不同的系列。由于 Shinobi 的限制,我使用不同的系列,如果你想要不同颜色的每个条,你需要使用不同的系列。见这里。
我正在使用的代码如下:
DataAdapter<Integer, Integer> dataAdapter3 = new SimpleDataAdapter<Integer, Integer>();
dataAdapter3.add(new DataPoint<Integer, Integer>(3, 3));
BarSeries ls3 = new BarSeries();
ls3.setDataAdapter(dataAdapter3);
BarSeriesStyle bss3 = ls3.getStyle();
bss3.setAreaColor(Color.CYAN);
DataAdapter<Integer, Integer> dataAdapter2 = new SimpleDataAdapter<Integer, Integer>();
dataAdapter2.add(new DataPoint<Integer, Integer>(12, 2));
BarSeries ls2 = new BarSeries();
ls2.setDataAdapter(dataAdapter2);
BarSeriesStyle bss2 = ls2.getStyle();
bss2.setAreaColor(Color.GREEN);
DataAdapter<Integer, Integer> dataAdapter1 = new SimpleDataAdapter<Integer, Integer>();
dataAdapter1.add(new DataPoint<Integer, Integer>(1, 1));
BarSeries ls1 = new BarSeries();
ls1.setDataAdapter(dataAdapter1);
BarSeriesStyle bss1 = ls1.getStyle();
bss1.setAreaColor(Color.BLUE);
DataAdapter<Integer, Integer> dataAdapter0 = new SimpleDataAdapter<Integer, Integer>();
dataAdapter0.add(new DataPoint<Integer, Integer>(15, 0));
BarSeries ls0 = new BarSeries();
ls0.setDataAdapter(dataAdapter0);
BarSeriesStyle bss0 = ls0.getStyle();
bss0.setAreaColor(Color.YELLOW);
NumberAxis xAxis = new NumberAxis();
chart.setXAxis(xAxis);
NumberAxis yAxis = new NumberAxis();
chart.setYAxis(yAxis);
yAxis.getStyle().setInterSeriesSetPadding(0.0f);
yAxis.getStyle().setInterSeriesPadding(0.0f);
chart.addSeries(ls3);
chart.addSeries(ls2);
chart.addSeries(ls1);
chart.addSeries(ls0);
结果:
另外,请注意,条形图未在 Y 轴上的正确值对齐(0->0.8、1->1.2、2->1.8、3->2.7)