achartengine不改变条形颜色

时间:2014-07-03 18:20:01

标签: android achartengine

我正在尝试显示两个不同颜色的条形系列,但我看到第二个图表也以与第一个相同的颜色绘制。 我尝试改变间距,但没有任何作用,我仍然看到机器人系列的相同颜色。 这是代码。

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

我不确定此代码有什么问题。 enter image description here

1 个答案:

答案 0 :(得分:1)

在这个地方

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

series更改为series2。它会工作。

对于条形间距和条形宽度,您可以使用

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