2012-09-04 74 views
0

我剛剛用birt製圖API做了第一步。我創建了一些堆疊和非堆疊(分組)的條形圖,但我也需要將它們混合使用:一些酒吧系列應該堆疊起來,其中一些應該分組。如何實現這一目標?混合堆棧和非堆棧的酒吧

(設置一些但不是所有系列bs1.setStacked(真);產生一個異常...包含堆積和拆散的系列組合。)

但它應該工作:

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

回答

1

從Jason Weathersby在Eclipse' forum得到了答案。問題的關鍵在於爲堆疊的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); 
...