首页 文章

achartengine不改变条形颜色

提问于
浏览
0

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

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 回答

  • 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);
    

相关问题