円グラフで強調表示された下のラベルを表示しない方法は? エントリのテキストの色を変更する方法は?
1 に答える
これを行うには、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);
これが理想的な解決策ではないことはわかっていますが、今のところうまくいくはずです。