当前位置: 首页 > 知识库问答 >
问题:

MPAndroidChart-饼图的所有部分都是相同的颜色

彭宜人
2023-03-14

我正在使用MPAndroidChart(https://github.com/PhilJay/MPAndroidChart)用于生成饼图的库。我学习了多个教程,包括wiki页面,但当我创建饼图时,所有的部分都是相同的颜色。你知道我该怎么解决这个问题吗?

代码:

PieChart mChart = (PieChart) findViewById(R.id.piechart);

List<PieEntry> pieChartEntries = new ArrayList<>();

pieChartEntries.add(new PieEntry(18.5f, "Green"));
pieChartEntries.add(new PieEntry(26.7f, "Yellow"));
pieChartEntries.add(new PieEntry(24.0f, "Red"));
pieChartEntries.add(new PieEntry(30.8f, "Blue"));

PieDataSet set = new PieDataSet(pieChartEntries, "Emotion Results");
PieData data = new PieData(set);
mChart.setData(data);
set.setColors(R.color.pieColour1,R.color.pieColour2,R.color.pieColour3,R.color.pieColour4,R.color.pieColour5,R.color.pieColour6,R.color.pieColour7,R.color.pieColour8);
mChart.invalidate();

共有1个答案

潘刚洁
2023-03-14

文件说明:

当添加一些额外的样式时,使用上述数据生成的PieChart可能与此类似

这些不是真正的颜色,而是颜色的标签:

pieChartEntries.add(new PieEntry(18.5f, "Green"));
pieChartEntries.add(new PieEntry(26.7f, "Yellow"));
pieChartEntries.add(new PieEntry(24.0f, "Red"));
pieChartEntries.add(new PieEntry(30.8f, "Blue"));

要将颜色添加到您使用的图表中,请执行以下操作:

set.setColors(new int[]{Color.parseColor("#FF32DA64"),
                    Color.parseColor("#FF32DAD4"),
                    Color.parseColor("#FFB853F2"),
                    Color.parseColor("#FFF2ED53")});

也可以使用以下模板之一:

set.setColors(ColorTemplate.COLORFUL_COLORS);

编辑:

我刚刚看到您正在使用参考资料中的颜色,如果您检查setColors方法,您应该会看到:

如果您正在使用资源中的颜色,请确保颜色已经准备好(通过调用getResources(). getColor(...))

因此,在您的情况下,您需要先将资源解析为颜色对象,然后再将其添加到集合中。

 类似资料:
  • 以下代码为与分组变量关联的每个“色调”值生成一个带有不同颜色条的条形图: 我想更改颜色,以便属于相同分组值的所有条都具有相同的颜色。也就是说,的前两个栏应该是橙色,而的最后两个栏应该是蓝色。 我已经尝试了'sns.barplot()的参数。但是,除非我遗漏了什么,否则这允许我指定每个色调级别的颜色,但不能单独指定分组变量的值。 我也看了一下这个相关问题的答案,它问了一些关于。公认的答案建议使用轴的

  • 为什么单子里的牌都一样?我尝试了,但输出仍然相同。 Main.java 产出: Lorem ipsum dolor sit amet,consectetur adipiscing Elit。Aenean nisl.curabitur ac arcu ornare,aliquet eros eu,pretium massa.

  • 当数据不断传来时,整个堆栈向左移动时,条形图是动态添加的,有没有办法将第一个条形图的颜色设置为不同的颜色?谢谢。 编辑和解决方案:这是我在图表中添加新条目的代码,它每500毫左右动态发生一次。 感谢@Philip Jahoda,我让它正常工作,只需在您的addEntry方法中添加这段代码:

  • 我正在做一个条形图并添加图例。代码如下: 我得到的问题是,图例元素具有与下图相同的颜色:为什么?

  • 我使用MPAndroidChart库绘制条形图,我使用3种三种颜色绘制条形图,基于条形图值。 我想显示文本,解释每种颜色是什么(即图例),如下图所示。 在示例图像中,我想要的文本是写着“公司A”、“公司B”、“公司C”的文本。

  • 我们的测试在一些目录中存储关于每个已执行测试的大量信息。如果同一次运行的所有结果都存储在一个以日期/id命名的目录中,这将是切实可行的。这样可以很容易地查看历史记录并跟踪是什么。目前这是一个手动作业,每次运行后都必须重命名输出目录以保留记录。 我们可以很容易地在cucumber之外编写脚本以实现自动化,但是我想知道这是否可以通过cucumber框架实现。一种简单的方法(如果可能的话)是创建一个ru