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

如何设置饼图的标签颜色?

锺离声
2023-03-14

我正在使用mpandroid图表库创建饼图。

我想格式化饼图上的文本标签,但我不知道如何做到这一点

data.setValueTextColor(ContextCompat.getColor(getActivity(),R.color.black));

但是,它只改变数据的值,而不是标签。此外,我想成为饼图中的标签。我还尝试使用以下代码,

PieEntry entry2=new PieEntry(50-scratches,"Remaining \nScratches");

但是,它不起作用。

我的代码如下:

private void setPiechart(float scratches) {

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

    PieEntry entry1=new PieEntry(scratches,"Scratches");
    PieEntry entry2=new PieEntry(50-scratches,"Remaining \nScratches");

    values.add(entry1);
    values.add(entry2);

    PieDataSet dataSet = new PieDataSet(values,"");

    dataSet.setColors(ContextCompat.getColor(getActivity(),R.color.color_veridoc_gradient1),
            ContextCompat.getColor(getActivity(),R.color.colorBgChat));

    dataSet.setHighlightEnabled(true);
    dataSet.setAutomaticallyDisableSliceSpacing(true);

    dataSet.setSliceSpace(10);

    PieData data=new PieData(dataSet);
    data.setValueTextSize(20f);
    data.setValueTextColor(ContextCompat.getColor(getActivity(),R.color.black));


    pieChart.setData(data);
    Description description=new Description();
    description.setText("Scratches ");
    pieChart.setDescription(description);
    pieChart.setDrawHoleEnabled(true);
    pieChart.setHoleRadius(10f);

    pieChart.animateY(500);

    Legend legend = pieChart.getLegend();
    legend.setEnabled(true);

    legend.setTextColor(Color.BLACK);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        pieChart.setElevation(10);
    }

}

简而言之,我想做的就是

  1. 更改饼图中的标签颜色(从白色变为黑色)
  2. 防止标签超出饼图。(如图中所示的剩余划痕)

有人能帮我吗?

我还尝试了以下链接中提到的这些解决方案。

链接1链接2

但是它们似乎都不起作用。

共有2个答案

葛鸿熙
2023-03-14

要更改饼图中标签的颜色,请使用以下代码:

pieChart.setEntryLabelColor(Color.BLACK);

我假设pieChart是XML的饼图视图,即pieChart=(PieChart)findViewById(R.id.chart1);如果不是,则将视图的对象替换为pieChart

对于值文本颜色,您已经通过以下代码更改了其颜色:

数据。setValueTextColor(ContextCompat.getColor(getActivity(),R.color)。(黑色) 或者你可以使用类似的数据。setValueTextColor(颜色为黑色)

现在,关于显示标签文本在两行中:
我认为这是不可能的,因为图表是在画布上绘制的,画布不支持多行。如果你想要多行,你必须做一些技巧,如这里所描述的。要做到这一点,你必须修改MPAndroid图表库。

因此,您也可以按如下方式更改标签的文本大小:

pieChart.setEntryLabelTextSize(12f);  // You can increase or decrease value as per your need in argument

此外,您还可以将字体(字体)应用于该标签,如下所示:

pieChart.setEntryLabelTypeface(yourTypeFace);

赵嘉悦
2023-03-14

使用

   pieChart.setEntryLabelColor(Color.BLACK);
 类似资料:
  • 我是D3的新手,我不太擅长js,但我仍然很喜欢使用d3制作饼图。我有存储在数组中的数据和我希望在数组。 我在这个例子的基础上http://bl.ocks.org/mbostock/3887193,这很容易理解。我的图表的重点是我将值存储在数组中而不是csv文件中,所以我删除了函数。 到目前为止,该图表运行良好,但它不会使用不同的颜色,也不会显示标签。 我可以想到两种可能的解决方案: 循环元素(包含

  • 当前效果:标签文字太靠近中心位置 当前series配置如下 期望实现的效果如下,标签文字虽然在扇区内部,但是更靠近边缘,不会互相遮挡

  • 问题内容: 我正在尝试设置取景器显示的彩色标签。我知道的唯一功能是setResourceValue。但这需要本地化名称! 我也可以想象自己的母语和英语,但我不知道其他所有人。我不敢相信,这应该是这样。 是are转换函数,它接受诸如enum或int的标准参数并提供本地化的颜色名称吗? 我参与其中,但是只支持两种语言(德语和英语): 问题答案: 要设置单一颜色,确实应该使用API​​调用。但是,您应该

  • 我试图添加自定义渲染器的每个饼图在我的图表上的基础上,数据的类型是传递(整数vs美元,金额vs百分比)。但是,中的数据似乎只有1个键(然而,当数据集创建为时,它有和)。 在下面的图片中,我试图实现的是右边的图(“销售总额”)将显示美元金额()。 我尝试了什么:我尝试创建一个自定义呈现器,并传入datatype的枚举,但这不起作用,因为数据类型是因为我无法确定呈现器中呈现的是哪个馅饼: 这可能吗?所

  • 我如何从FontAwesome的图标中设计图标的颜色、大小和阴影? 例如,FontAw的网站将显示一些白色图标和一些红色图标,但不会显示CSS以了解如何以这种方式设置它们的样式……

  • 我的php页面有多个动态饼图,我希望使用chart.js为每个饼图显示图例和标题 这是我的JS代码: PHP代码: 请建议我为每个饼图设置一个标题和图例。