如何不在饼图中显示突出显示的底部标签?以及如何更改条目文本颜色?
问问题
1737 次
1 回答
2
您可以通过将 setDrawLegend 属性设置为 false 来实现。
无论您在哪里初始化 pieChart,只需添加以下行:
pieChart.setDrawLegend(false);
[编辑]
关于更改颜色,您可以执行以下操作:
首先,当您向图表添加一些数据时,就会发生这种情况。添加数据时,会将 PieData 对象添加到图表中。这个 PieData 对象有 2 个参数、名称和值。名称列表是字符串的 ArrayList,但值必须是 PieDataSet 对象的实例。您可以在此处添加颜色并添加其他属性(例如切片之间的间距)。此外,PieDataSet 对象包含了一个集合的 Y 值和它的标签。最后,PieDataSet 的值是 Entry 对象的 ArrayList。一个单一的 Entry 对象获取要显示的值,它是图表上的索引。
这是一个示例演示代码,说明了上述简短描述:
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 回答