Sathya
Sathya

Reputation: 140

achartengine not changing bar color

I am trying to display two bar series with different color, but I see second chart also drawn in the same color as first one. I tried changing the spacing but nothing works, I still see the same color for bot series. Here's the code.

public class BarGraph {
public Intent getIntent(Context context){
    int [] y = { 124,135,443,456,234,123,342,134,123,643,234,274};
    CategorySeries series = new CategorySeries("Bar graph1");
    for ( int i = 0 ; i < y.length;i++){
        series.add("Bar "+ (i+1),y[i]);
    }


    int [] y2 = { 224,235,243,256,234,223,242,234,223,243,234,274};
    CategorySeries series2 = new CategorySeries("Bar graph2");
    for ( int i = 0 ; i < y2.length;i++){
        series.add("Bar "+ (i+1),y2[i]);
    }

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series.toXYSeries());
    dataset.addSeries(series2.toXYSeries());

    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setColor(Color.BLUE);
    renderer.setDisplayChartValues(true);
    renderer.setChartValuesSpacing((float)0.6);
    renderer.setChartValuesTextSize((float)20);

    XYSeriesRenderer renderer2 = new XYSeriesRenderer();
    renderer2.setColor(Color.CYAN);
    renderer2.setDisplayChartValues(true);
    renderer2.setChartValuesSpacing((float)0.6);
    renderer2.setChartValuesTextSize((float)20);


    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.setChartTitle("Demo");
    mRenderer.setXTitle("XXXX");
    mRenderer.setYTitle("YYYY");
    mRenderer.setPointSize((float)6.0);
    mRenderer.setApplyBackgroundColor(true);
    mRenderer.setMarginsColor(Color.RED);
    mRenderer.setBackgroundColor(Color.BLACK);
    mRenderer.addSeriesRenderer(renderer);
    mRenderer.addSeriesRenderer(renderer2);

    Intent intent = ChartFactory.getBarChartIntent(context, dataset, mRenderer, BarChart.Type.DEFAULT);

    return  intent;
}

I am not sure what's wrong with this code. enter image description here

Upvotes: 0

Views: 135

Answers (1)

keshav
keshav

Reputation: 3255

At this place

 int [] y2 = { 224,235,243,256,234,223,242,234,223,243,234,274};
CategorySeries series2 = new CategorySeries("Bar graph2");
for ( int i = 0 ; i < y2.length;i++){
    series.add("Bar "+ (i+1),y2[i]);
}

Change series to series2 . It will work.

And for bar spacing and bar width you can use

        mRenderer.setBarSpacing(10);
        mRenderer.setBarWidth(10);

Upvotes: 1

Related Questions