1

シングルシリーズとシングルレンダラーの棒グラフグラフを生成しています。与えられたデータ条件に応じて、さまざまな色でバーを生成する必要があります。

以下は、レンダラーの私のコードです。

  private XYMultipleSeriesRenderer getDemoRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setBarSpacing(1.0);
    renderer.setAxisTitleTextSize(12);
    renderer.setChartTitleTextSize(12);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);
    renderer.setMargins(new int[] { 20, 30, 15, 0 });
    renderer.setXLabels(0);
    XYSeriesRenderer r = new XYSeriesRenderer();
    SQLiteDatabase DB = Context
            .openOrCreateDatabase("WaterElectricityReadingDataBase.db",
                    MODE_WORLD_READABLE, null);
    Cursor c = DB
            .rawQuery(
                    "select ReadingValue,ReadingMode, from WaterElectricity ",
                    null);  
    if (c.moveToFirst()) {
        do {
            String ReadingMode = c.getString(c
                    .getColumnIndex("ReadingMode"));
            if (ReadingMode.contains("Water")){

                r.setColor(Color.GREEN);
            }else if(ReadingMode.contains("Electricity")){
                r.setColor(Color.WHITE);
            }
        }while (c.moveToNext());
    }              
    r.setPointStyle(PointStyle.DIAMOND);
    r.setFillBelowLine(false);
    r.setFillPoints(true);
    renderer.addSeriesRenderer(r);
    setChartSettings(renderer);
    return renderer;
}

上記のコードで、ReadingModeが "Water"の場合、バーを緑色で生成し、もう1つは白色で生成する必要があります。上記のコードを実行すると、すべてのバーが緑色で生成されていることがわかりました。データベースにReadingModeのレコードが「Water」および「Electricity」としてあります。しかし、なぜこれが幸せなのですか?複数のレンダラーを使用する必要がありますが、単一のシリーズを使用していますか?

誰かが私に良い解決策を提案できますか?頭が折れそうです。

どんな助けでも大歓迎です!! 前もって感謝します!!

4

1 に答える 1

1

achartengineを使用した棒グラフ。リンクで受け入れられた答えを確認してください。

                    OR

バーごとに異なるシリーズを使用します。

http://code.google.com/p/achartengine/issues/detail?id=76。誰かが同じことに関する問題を報告しました。

于 2013-03-27T06:07:29.207 に答える