1

我正在为单系列和单渲染器生成条形图。我需要根据给定的数据条件生成不同颜色的条形图。

以下是我的渲染器代码,

  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”。但为什么会这样?我是否需要使用多个渲染器但我只有一个系列?

任何人都可以建议我一个好的解决方案吗?我的头快要断了。

任何帮助将不胜感激!!提前致谢!!

4

1 回答 1

1

使用 achartengine 的条形图。检查链接中接受的答案。

                    OR

对每个条使用不同的系列。

http://code.google.com/p/achartengine/issues/detail?id=76。有人报告了同样的问题。

于 2013-03-27T06:07:29.207 回答