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

ChartJS与ChartJS DataLabels:为值标签更改每个数据集的颜色

莫宁
2023-03-14

我将ChartJS与插件ChartJS DataLabels一起使用,以在点的旁边显示文本值(谁会认为这个基本任务需要一个插件,但我离题了)。

我的问题是,我需要随单个数据集改变文本标签的颜色。但到目前为止我还没有找到解决办法。我动态添加新数据集,它们不是静态预加载的。颜色应与数据集的颜色匹配。

假设我有

var colorpalette = ["red", "blue", "green", "magenta", "yellow", "brown", "purple", "orange", "black", "gray"];
var currseriesnum = 0;
var chart = null;

function setUpChart() {

    var ctx = document.getElementById('chartArea').getContext('2d');
    chart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: monthnames, 
            datasets: [] // Initially blank - series added dynamically with chart.update()
        }, 
        options: {
            legend: {
                display: false
            },          
            scales: {
                yAxes: [{
                    ticks: {
                        beginAtZero: true
                    }
                }]
            }, 
            plugins: {  // ChartsJS DataLabels initialized here
                datalabels: {
                    anchor: 'end',
                    align: 'bottom',
                    formatter: Math.round,
                    font: {
                      weight: 'bold', 
                      size: 16
                    },
                    color: colorpalette[currseriesnum] // Pick color dynamically
                }
            }           
        }
    });     

}

不起作用。还尝试了一个函数,color:function(context),但不确定如何检索我在这里获得的数据集的当前索引

我正在动态地将序列添加到图表中(最初为空),如下所示,并增加全局变量currseriesnum。

chart.data.datasets.push({
    label: keyValueSelection.label, 
    fill: false, 
    data: keyValueSelection.value, 
    borderColor: colorpalette[currseriesnum], 
    borderWidth: 2
});
chart.update();
currseriesnum++;

共有1个答案

叶国兴
2023-03-14

他们在ChartJS DataLabels论坛上给了我答案:

plugins: {
    datalabels: {
        color: function(ctx) {
            // use the same color as the border
            return ctx.dataset.borderColor
        }
    }
}
 类似资料:
  • 问题内容: 如果折线图中的数据点高于某个特定值,是否可以为该数据点设置其他颜色? 问题答案: 对于chartjs 2.0,请参见以下答案。 下面是原始答案。 关于ChartJS的好问题。我一直想做类似的事情。即动态地将点颜色更改为其他颜色。您在下面尝试过此吗?我只是尝试过,它对我有用。 试试这个: 或尝试以下方法: 甚至这个: 然后执行以下操作: 我想你可能会喜欢 仍然尝试一下。

  • 问题是:我正在使用外部数据(用户上传的带有数据集信息的.txt文件)绘制图表。但是如果用户错误地上传了错误的文件,他应该能够上传另一个文件,从而重新绘制图表。 以下是当我一个接一个地上传多个文件时,图表呈现会发生什么情况: 他们看起来像什么的例子:http://imgur.com/a/NDRgS 每次再次绘制图表时,背景颜色都会变暗。每次用户上传文件时,我都会执行以下操作: 做一个和一个 删除使用

  • 我有一个示例数据框(df),如下所示,我想使用熊猫创建一个系列,标签对应于每种颜色和它出现的次数数据框中出现该颜色的条目,有点像每种颜色的总数。我尝试了以下方法,但取而代之的是获得一个系列,其总行数显示为每种颜色的颜色总和: 电流输出: 但是,很明显,数据框中4种颜色中的每种都没有12个条目。我做错了什么?

  • 参考Google发布的新,如何更改浮动标签文本颜色? 在样式中设置、、没有帮助 这就是我现在拥有的:

  • 我正在使用bootstrap 5创建一个带有浮动输入的表单。下面是我使用的一个输入: 这段代码生成一个浮动输入,如下所示:浮动输入我想在选择输入时更改标签的颜色(如果可能的话,只使用css)。

  • 我有4个图标在底部栏在我的应用程序,我需要改变颜色的图标从灰色到白色,我遵循这个问题,但当我按任何图标所有图标改变颜色在同一时间,我需要当按例如(主页)图标只按(主页)图标。 我怎么能这么做?? 代码: