Reputation: 140
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.
Upvotes: 0
Views: 135
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