1

饼形图

如何不在饼图中显示突出显示的底部标签?以及如何更改条目文本颜色?

4

1 回答 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 回答