我正在为Single系列和单个渲染器生成条形图。我需要根据我给定的数据条件生成不同颜色的条。
以下是我的渲染代码,
private XYMultipleSeriesRenderer getDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setBarSpacing(1.0);
renderer.setAxisTitleTextSize(12);
renderer.setChartTitleTextSize(12);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setPointSize(5f);
renderer.setMargins(new int[] { 20, 30, 15, 0 });
renderer.setXLabels(0);
XYSeriesRenderer r = new XYSeriesRenderer();
SQLiteDatabase DB = Context
.openOrCreateDatabase("WaterElectricityReadingDataBase.db",
MODE_WORLD_READABLE, null);
Cursor c = DB
.rawQuery(
"select ReadingValue,ReadingMode, from WaterElectricity ",
null);
if (c.moveToFirst()) {
do {
String ReadingMode = c.getString(c
.getColumnIndex("ReadingMode"));
if (ReadingMode.contains("Water")){
r.setColor(Color.GREEN);
}else if(ReadingMode.contains("Electricity")){
r.setColor(Color.WHITE);
}
}while (c.moveToNext());
}
r.setPointStyle(PointStyle.DIAMOND);
r.setFillBelowLine(false);
r.setFillPoints(true);
renderer.addSeriesRenderer(r);
setChartSettings(renderer);
return renderer;
}
在上面的代码中,如果ReadingMode是“Water”,我需要用绿色生成条形图,而另一个条形图用白色生成。如果我运行上面的代码,我确实观察到所有条形都是以绿色生成的。我在我的数据库中将ReadingMode记录为“Water”和“Electricity”。但为什么会这样呢?我需要多个渲染器,但我有单个系列吗?
任何人都可以向我推荐一个好的解决方案吗?我的脑袋即将破裂。
任何帮助将不胜感激!提前致谢!!
答案 0 :(得分:1)
Bar chart using achartengine。检查链接中接受的答案。
OR
为每个栏使用不同的系列。
http://code.google.com/p/achartengine/issues/detail?id=76。有人报告了同样的问题。