Tünde
Tünde

Reputation: 885

chart values not showing for bar chart achartengine

I am creating Default bar chart using Achartengine library. The values doesn't show properly. I want to show the chart value at top of the bar and align to center. For me only the values from the first bar are visible, but I want to see the values from both bars. How can I do that? I would appreciate any help.

Here is my code

public Intent getIntent(Context context) 
{   
    // Bar 1
    int[] y = { 124, 135, 443, 456, 234, 123, 342, 134, 123, 643, 234, 274 };
    CategorySeries series = new CategorySeries("Demo Bar Graph 1");
    for (int i = 0; i < y.length; i++) {
        series.add("Bar " + (i+1), y[i]);
    }

    // Bar 2
    int[] y2 = { 124, 135, 243, 256, 234, 223, 242, 234, 223, 243, 234, 274 };
    CategorySeries series2 = new CategorySeries("Demo Bar Graph 2");
    for (int i = 0; i < y.length; i++) {
        series2.add("Bar " + (i+1), y2[i]);
    }

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(series.toXYSeries());
    dataset.addSeries(series2.toXYSeries());

    // This is how the "Graph" itself will look like
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.setChartTitle("Demo Graph Title");
    mRenderer.setXTitle("X VALUES");
    mRenderer.setYTitle("Y VALUES");
    mRenderer.setAxesColor(Color.GREEN);
    mRenderer.setLabelsColor(Color.RED);
    mRenderer.setBarSpacing(2.0f);

    // Customize bar 1
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setColor(Color.RED);
    renderer.setDisplayChartValues(true);
    renderer.setChartValuesSpacing((float) 2.5);
    mRenderer.addSeriesRenderer(renderer);

    // Customize bar 2
    XYSeriesRenderer renderer2 = new XYSeriesRenderer();
    renderer.setColor(Color.GREEN);
    renderer.setDisplayChartValues(true);
    renderer.setChartValuesSpacing((float) 2.5);
    mRenderer.addSeriesRenderer(renderer2);

    Intent intent = ChartFactory.getBarChartIntent(context, dataset,mRenderer, Type.DEFAULT);
    return intent;
}

Upvotes: 1

Views: 1549

Answers (1)

Dan D.
Dan D.

Reputation: 32391

You are instantiating a renderer and a renderer2, but you are calling renderer.setDisplayChartValues(true) twice and never call renderer2.setDisplayChartValue(true);

Upvotes: 3

Related Questions