【问题标题】:Show different datasets with an MPAndroidChart pie chart使用 MPAndroidChart 饼图显示不同的数据集
【发布时间】:2017-01-26 09:37:46
【问题描述】:

在我的应用程序中,我想在饼图上显示一些数据。我正在使用 MPAndroidChart 库并按照文档编写了一个漂亮的图表,并正确显示了所有数据。

现在,我想改进我的图表,但我遇到了一些问题。我的数据是指一天,但有两类:收入和收入。到目前为止,我将它们作为单个 PieDataSet 处理(它们有标签,因此很容易区分它们)。现在我想区分收入和收入,在同一个饼图中用不同的颜色显示它们。

我尝试按照this 链接(折线图部分)将其调整为饼图,但Android Studio 告诉我,我不能使用List<IPieDataSet> 作为PieData 对象的构造函数的参数。代码如下:

public static void drawPie( List<PieEntry> entriesU, List<PieEntry>entriesE, PieChart chart){
    PieDataSet set = new PieDataSet(entriesU,"uscite");
    PieDataSet set1 = new PieDataSet(entriesE,"entrate");
    List<IPieDataSet> dataSets = new ArrayList<>();
    dataSets.add(set);
    dataSets.add(set1);
    set.setSliceSpace(5);
    set1.setSliceSpace(5);
    PieData data = new PieData(dataSets);
    chart.setData(data);
}

我已经搜索了很多,但我仍然没有找到这个问题的答案。

问题:

是否可以在同一个饼图上显示多个数据集?如果可能的话,我该怎么做?

【问题讨论】:

    标签: pie-chart mpandroidchart


    【解决方案1】:

    饼图是一个 360 度圆,其中切片代表给定数据集总数的百分比。这仅在单个 IDataSet 的上下文中才有意义。因此,与BarChartLineChart 不同,PieChart 不支持多个IDataSet

    我认为您真正想要的是为您的“收入”和“收入”使用不同的颜色。为此,您需要做的就是创建一个已解析颜色的List&lt;Integer&gt;(不是颜色资源),其中列表中的位置与PieEntry 添加到图表的顺序相匹配。

    为了说明,假设我们有这个:

    entries.add(new PieEntry(15f, "entrate1")); //revenue1
    entries.add(new PieEntry(20f, "uscite1")); //expense1
    entries.add(new PieEntry(10f, "entrate2")); //revenue2
    entries.add(new PieEntry(50f, "uscite2")); //expense2
    

    您只需创建一个匹配的已解析颜色的List&lt;Integer&gt;

    List<Integer> colors = new ArrayList<Integer>();
    colors.add(ContextCompat.getColor(context, R.color.red));
    colors.add(ContextCompat.getColor(context, R.color.blue));
    colors.add(ContextCompat.getColor(context, R.color.red));
    colors.add(ContextCompat.getColor(context, R.color.blue));
    dataSet.setColors(colors);
    

    现在你所有的收入都是红色的,你的支出都是蓝色的。您甚至可以聪明地编写一个将PieEntry 映射到颜色的函数,而不是手动执行。

    无论如何,this answer here 可以正确设置饼图切片的颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多