1

円グラフ

円グラフで強調表示された下のラベルを表示しない方法は? エントリのテキストの色を変更する方法は?

4

1 に答える 1

2

これを行うには、setDrawLegend プロパティを false に設定します。

pieChart を初期化する場所はどこでも、次の行を追加するだけです。

pieChart.setDrawLegend(false);

[編集]

色の変更について、これはあなたができることです:

まず、グラフにデータを追加すると、これが発生します。データを追加するときは、PieData オブジェクトをチャートに追加します。この PieData オブジェクトは、名前と値の 2 つの引数を取ります。名前のリストは文字列の ArrayList ですが、値は PieDataSet オブジェクトのインスタンスである必要があります。ここで、色を追加したり、他のプロパティ (スライス間の間隔など) を追加したりできます。また、PieDataSet オブジェクトは、セットの Y 値とそのラベルをラップします。最後に、PieDataSet の値は Entry オブジェクトの ArrayList です。1 つの Entry オブジェクトが表示する値を受け取り、それがチャートのインデックスになります。

上記の簡単な説明を示すサンプル DEMO コードを次に示します。

ArrayList<Entry> yChartValues = new ArrayList<Entry>();
int[] chartColorsArray = new int[] {
      R.color.clr1,
      R.color.clr2,
      R.color.clr3,
      R.color.clr4,
      R.color.clr5
};

// These are the 2 important elements to be passed to the chart
ArrayList<String> chartNames = new ArrayList<String>();
PieDataSet chartValues = new PieDataSet(yChartValues, "");

for (int i = 0; i < 5; i++) {
     yChartValues.add(new Entry((float) i*2, i));
     chartNames.add(String.valueOf(i));
}

chartValues.setSliceSpace(1f); // Optionally you can set the space between the slices
chartValues.setColors(ColorTemplate.createColors(this, chartColorsArray)); // This is where you set the colors. The first parameter is the Context, use "this" if you're on an Activity or "getActivity()" if you're on a fragment

// And finally add all these to the chart
pieChart.setData(new PieData(chartNames, chartValues));

これは役に立ちますか?

編集2:

これは、パイ スライス内のテキストの色を変更する方法です。

PieChart pieChart = ...;

// way 1, simply change the color:
pieChart.setValueTextColor(int color);

// way 2, acquire the whole paint object and do whatever you want    
Paint p = pieChart.getPaint(Chart.PAINT_VALUES);
p.setColor(yourcolor);

これが理想的な解決策ではないことはわかっていますが、今のところうまくいくはずです。

于 2014-10-01T08:57:08.647 に答える