Reputation: 15515
See the barchart in image friends.
this is my problem. It shows like all categories in first place itself. I want each category as separately. Which means Salary
in first place, Pocket Money
in second place, Travel
in third place and Entertainment
in fourth place.
My code is as follows.
XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
setChartSettings(renderer);
layout.removeAllViews();
layout.addView(ChartFactory.getBarChartView(this, getBarDemoDataset(),
renderer, Type.DEFAULT));
and
public XYMultipleSeriesRenderer getBarDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] {20, 30, 15, 0});
SimpleSeriesRenderer r;
for (int i = 0; i < income_list.size(); i++) {
r = new SimpleSeriesRenderer();
r.setColor(color.get(i));
renderer.addSeriesRenderer(r);
r.setDisplayChartValues(true);
}
return renderer;
}
private void setChartSettings(XYMultipleSeriesRenderer renderer) {
renderer.setXTitle("Category");
renderer.setYTitle("Amount");
renderer.setXAxisMin(0.5);
renderer.setXAxisMax(4.5);
renderer.setYAxisMin(0);
renderer.setYAxisMax(10000);
}
private XYMultipleSeriesDataset getBarDemoDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
for (int i = 0; i < income_list.size(); i++) {
CategorySeries series = new CategorySeries(cat.get(i));
series.add(income_list.get(i));
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
Please help me friends. I am trying this still last 6 hours friends. Still I didn't get any idea. using achartengine
is more helpful.
Thainks in advance.
Upvotes: 0
Views: 561
Reputation: 32391
Instead of creating CategorySeries
, create XYSeries
and add your items this way:
series.add(i + 1, income_list.get(i));
Then, you can just do dataset.addSeries(series);
as it is already an XYSeries
, you won't have to call toXYSeries()
.
Upvotes: 2