【问题标题】:MPAndoirdChart Piechart how not to show bottom labels?MPAndroidChart 饼图如何不显示底部标签?
【发布时间】:2014-11-26 01:28:11
【问题描述】:

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

【问题讨论】:

    标签: android charts pie-chart mpandroidchart


    【解决方案1】:

    您可以通过将 setDrawLegend 属性设置为 false 来做到这一点。

    无论您在哪里初始化饼图,只需添加以下行:

    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);
    

    我知道这不是一个理想的解决方案,但它现在应该可以工作。

    【讨论】:

    • 你能回答我编辑的问题的第二部分吗?
    • 当然,我刚刚更新了我的答案。希望它可以帮助你。编码愉快!
    • 谢谢,但您的解决方案是更改图表值的颜色,但我只需要更改图表名称的文本颜色
    • 请看一下我的编辑,它显示了如何更改饼图文本颜色。
    • pieChart.setDrawLegend(false) == pieChart.getLegend().setEnabled(false),,, setDrawLegend deprericated
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多