1

で棒グラフを作成しましたaChartEngine。私が抱えている問題は、バーが 0 を含む各値に対して作成されることです。これは、値が 0 の場合、隣接するバーの間にスペースが作成されることを意味します。

そのスペースを取り除きたい - 唯一の方法は、バーの値が 0 のときにバーを削除または非表示にすることだと思います。オンラインで解決策を探し、バーの間隔を 0 に設定するなど、さまざまなことを試しましたこれまでのところ、機能するものは何も見つかりませんでした。

これが私のコードです:

//DATA 1
    int[] y = {5, 0, 8, 13, 0, 16, 8};
    CategorySeries series = new CategorySeries("Category 1");
    for(int i = 0; i < y.length; i++){
        series.add(y[i]);
    }

    //DATA 2
    int[] y2 = {0, 5, 0, 10, 0, 0, 3};
    CategorySeries series2 = new CategorySeries("Category 2");
    for(int i = 0; i < y2.length; i++){
        series2.add(y2[i]);
    }

    //DATA 3
    int[] y3 = {25, 5, 2, 9, 22, 24, 6};
    CategorySeries series3 = new CategorySeries("Category 3");
    for(int i = 0; i < y3.length; i++){
        series3.add(y3[i]);
    }

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

    XYSeriesRenderer renderer = new XYSeriesRenderer();
    renderer.setChartValuesSpacing((float) 10);
    renderer.setColor(Color.GREEN);

    XYSeriesRenderer renderer2 = new XYSeriesRenderer();
    renderer2.setChartValuesSpacing((float) 10);
    renderer2.setColor(Color.YELLOW);

    XYSeriesRenderer renderer3 = new XYSeriesRenderer();
    renderer3.setChartValuesSpacing((float) 10);
    renderer3.setColor(Color.BLUE);

    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    mRenderer.addSeriesRenderer(renderer2);
    mRenderer.addSeriesRenderer(renderer3);
    mRenderer.setChartTitle("MY GRAPH");
    mRenderer.setYTitle("Y AXIS TITLE");
    mRenderer.setBarSpacing(0);

    mRenderer.setXLabels(1);
    mRenderer.setYLabels(12);
    mRenderer.setShowGrid(true);

    mRenderer.addXTextLabel(1, "col 1");
    mRenderer.addXTextLabel(2, "col 2");
    mRenderer.addXTextLabel(3, "col 3");
    mRenderer.addXTextLabel(4, "col 4");
    mRenderer.addXTextLabel(5, "col 5");
    mRenderer.addXTextLabel(6, "col 6");
    mRenderer.addXTextLabel(7, "col 7");
    mRenderer.setFitLegend(true);       

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

特定のバーのみを削除またはマスクする方法を知っている人はいますか?

前もって感謝します!

4

1 に答える 1

1

0の値はまだ値であり、表示する必要があると思います。表示したくない場合は、コードロジックでスキップしてください。

別の可能な解決策は、MathHelper.NULL_VALUE代わりに使用することです。

于 2013-11-18T19:21:14.807 に答える