我想绘制一个条形图,其中包含五个单独的条形图 - 我使用过Achartengine . 我能够以相同的颜色显示所有五个条形,但我想区分一个不同颜色的条形,但我不能显示多种颜色 . 请告诉我如何显示不同的颜色 . 我的代码......
values.add(new double[] {21,56,33,10,20});
int[] colors = new int[] { Color.rgb(227, 121, 15) };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
setChartSettings(renderer, "", "", "", 0,5, 0,100, Color.WHITE, Color.WHITE);
renderer.setXLabels(8);
renderer.setYLabels(10);
renderer.setDisplayChartValues(true);
mChartView= ChartFactory.getBarChartView(context, buildBarDataset(titles, values), renderer,
Type.DEFAULT);
layout.addView(mChartView, 350, 500);
4 回答
可以通过扩展SimpleSeriesRenderer和BarChart类来实现 . 这是我对RangeBarChart的解决方案(所有感谢gilenodm,希望我有一些声誉来支持你的答案):
我做了一个黑客来达到这个效果 .
Org.achartengine.SimpleSeriesRenderer
改变了这个类,我添加了int[] colors
和boolean multipleColorsEnabled
及其getter和setter . 所以,我在类中更改了org.achartengine.BarChart
,方法是drawSeries,其中设置循环中每个条的颜色,如下所示:在加载所用数据的类中:
我使用achartengine已经有一段时间了,但我认为每个系列都必须有自己的颜色 . 作为一种解决方法,您可以创建要区分其自己的系列成员的栏,并为该系列设置不同的颜色 . 也许其他人有更好的方法 .
你必须使用不同的 SimpleSeriesRenderer 内部buildBarRenderer()调用,并以这种方式定义尽可能多的系列颜色(替换前两行代码):
其余代码应与您的相同,但我没有测试过 . AFAIK you need different series ,因为每个系列只能有一种颜色 .