混合堆叠和未堆叠的条

时间:2012-09-04 09:17:16

标签: charts birt bar-chart

我刚刚用birt制图api做了我的第一步。我创建了一些堆叠和未堆叠(分组)条形图,但我还需要它们的混合:一些条形系列应该堆叠,一些应该分组。如何实现这个目标?

(将一些但不是所有系列设置为bs1.setStacked(true);产生异常...包含堆叠和未堆叠系列的混合。)

但它应该有用吗?!:

http://wiki.eclipse.org/BIRT/FAQ/Charts2.2#Can_I_combine_stacked.2C_logarithmic_and.2For_percent_properties_on_a_single_scale.3F

1 个答案:

答案 0 :(得分:1)

Eclipse' forum得到了Jason Weathersby的答案。关键是为堆叠的BarSeries(setStacked(true);)定义2个SeriesDefinition,为未堆叠的BarSeries定义一个:

 ...
BarSeries bs1 = (BarSeries) BarSeriesImpl.create();
bs1.setDataSet(orthoValues1);
bs1.setStacked(true);

BarSeries bs2 = (BarSeries) BarSeriesImpl.create();
bs2.setDataSet(orthoValues2);
bs2.setStacked(true);

BarSeries bs3 = (BarSeries) BarSeriesImpl.create();
bs3.setDataSet(orthoValues3);
bs3.setStacked(false);

SeriesDefinition sdY = SeriesDefinitionImpl.create();
sdY.getSeriesPalette().shift(0);
yAxisPrimary.getSeriesDefinitions().add(sdY);

SeriesDefinition sdY2 = SeriesDefinitionImpl.create();
sdY2.getSeriesPalette().shift(0);
yAxisPrimary.getSeriesDefinitions().add(sdY2);  

sdY.getSeries().add(bs1);
sdY.getSeries().add(bs2);
sdY2.getSeries().add(bs3);
...