3

まず、英語が下手で初心者のメンバーで申し訳ありません。

AchartEngine を使用して円グラフに複数の色の値を表示したいと考えています。

値の色を変更できることがわかりました

dRenderer.setLabelsColor(Color.BLACK);

ただし、変更できるのは 1 色のみです。

下の写真は私が表示したいものです(異なる値の色の場合)

ここに画像の説明を入力

円グラフの値ごとに複数の色を表示したい。

以下は私のPieChartクラスです

public class PieGraphTest {
private double cash, creditCard, debitCard;
public GraphicalView getView(Context context,int cash, int creditCard, int debitCard, int all){
    // Make it to be percentage to represent in the graph
    this.cash = (cash != 0) ? getPercentage(cash,all): 0;
    this.creditCard = (creditCard != 0) ? getPercentage(creditCard,all): 0;
    this.debitCard = (debitCard != 0) ? getPercentage(debitCard,all): 0;

    //data
    double[] values = {this.cash,this.creditCard,this.debitCard}; // 3 items

    CategorySeries series = new CategorySeries("Pie Graph");
    int count = 0;
    String prefix = "";
    for(double value : values){
        if(count == 0) prefix = " CASH  ";
        if(count == 1) prefix = " CREDIT CARD  ";
        if(count == 2) prefix = " DEBIT CARD  ";
        series.add(prefix+value+"% ", value);
        count++;
    }

    int[] colors = new int[] {Color.parseColor("#FFCBA4"), Color.parseColor("#C74646"), Color.parseColor("#A3FFCB")};
    DefaultRenderer dRenderer = new DefaultRenderer();
    for(int color : colors){
        SimpleSeriesRenderer sRenderer = new SimpleSeriesRenderer();

        sRenderer.setColor(color);
        dRenderer.addSeriesRenderer(sRenderer);
    }

    dRenderer.setChartTitle("Pie Chart Demo");
    dRenderer.setChartTitleTextSize(27);
    dRenderer.setZoomButtonsVisible(false);
    dRenderer.setLabelsTextSize(20); //value size
    dRenderer.setLabelsColor(Color.BLACK);
    dRenderer.setLegendTextSize(18);
    dRenderer.setPanEnabled(false);

    return ChartFactory.getPieChartView(context, series, dRenderer);
}// End GraphicalView

private double getPercentage(int data, int allData){
    double temp;
    temp = (data * 100)/allData;
    return temp;
}
}// End PieGraphTest

どうもありがとう。

4

0 に答える 0