繁体   English   中英

如何通过BIRT图表API自定义系列填充区域图?

[英]How to customize series fill in area chart via BIRT chart API?

我正在尝试为通过BIRT图表API构建的面积图中的系列创建渐变填充,但是“集成和扩展BIRT”一书和Interwebs似乎对如何使它起作用并不感到好奇。 似乎不管我做什么,我总是从默认调色板中获得纯色。 我试过使用SeriesDefinition.getSeriesPalette()。update(Gradient)甚至使用渐变填充创建我自己的Palette并将其设置在SeriesDefinition上,但无济于事。 我还注意到,如果我没有在Palette上执行shift(),即使它是shift(0),Javadocs声称也不会执行任何操作,则在尝试生成图表时会出现NullPointerException:

Caused by: java.lang.NullPointerException
at org.eclipse.birt.chart.render.Area.renderDataPoints(Area.java:521)
at org.eclipse.birt.chart.render.Line.renderSeries(Line.java:570)
at org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2181)
at org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:314)
at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1368)
... 108 more

这是我尝试过的最新(无效)代码:

Gradient gradient = FillUtil.createDefaultGradient(BirtReportBuilder.COLOR_WHITE);
gradient.setStartColor(ColorDefinitionImpl.WHITE());
gradient.setEndColor(ColorDefinitionImpl.create(76, 116, 131));
gradient.setDirection(90);
SeriesDefinition sdY = SeriesDefinitionImpl.create();
sdY.getQuery().setDefinition("\"Quantity\"");
Palette pal = PaletteImpl.create(gradient);
pal.shift(0);
sdY.setSeriesPalette(pal);
sdY.getSeries().add(as1);
yAxisPrimary.getSeriesDefinitions().add(sdY);

那么,使BIRT图表API使用我的Gradient作为区域填充的魔咒是什么?

这段代码对我有用,我得到了一个难看的彩色系列...

sdY.getSeriesPalette().update(GradientImpl.create(ColorDefinitionImpl.create(255,255,255), ColorDefinitionImpl.create(200,0,0,150), 90, false));

希望它能对您有所帮助; p

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM