使用achartengine的条形图与每个类别分开

时间:2013-05-09 05:40:54

标签: android graph charts bar-chart achartengine

请参阅图片好友中的条形图。

enter image description here

这是我的问题。它首先显示所有类别。我希望每个类别都是单独的。这意味着Salary位于第一位,Pocket Money位于第二位,Travel位于第三位,Entertainment位于第四位。

我的代码如下。

XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
        setChartSettings(renderer);
        layout.removeAllViews();
        layout.addView(ChartFactory.getBarChartView(this, getBarDemoDataset(),
                renderer, Type.DEFAULT));

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

请帮帮我朋友。我正在尝试这仍然持续6个小时的朋友。我仍然没有想到。使用achartengine会更有帮助。

提前尝试。

1 个答案:

答案 0 :(得分:2)

不是创建CategorySeries,而是创建XYSeries并以这种方式添加商品:

series.add(i + 1, income_list.get(i));

然后,你可以dataset.addSeries(series);,因为它已经是XYSeries,你不必致电toXYSeries()