1

I am generating a bar chart graph for the Single series and single renderer. I need the bars to be generated with different colors according to my given data condition.

Following is my code for Renderer,

  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;
}

In the above code if the ReadingMode is "Water" I need the bar to generated in Green color and for the other, in white color. If I run the above code, I did observe that all bars are generated in green color. I am having records with ReadingMode as "Water" and "Electricity" in my database. But why is this happeing? Do I need to take multiple renderers but I am having single series?

Can any one suggest me the good solution? My head is about to break.

Any help will be appreciated!! Thanks in advance!!

Mahe
  • 2,707
  • 13
  • 50
  • 69

1 Answers1

1

Bar chart using achartengine. Check the accepted answer in the link.

                    OR

Use a Different series for each bar.

http://code.google.com/p/achartengine/issues/detail?id=76. Some one reported an issue regarding the same.

Community
  • 1
  • 1
Raghunandan
  • 132,755
  • 26
  • 225
  • 256