【问题标题】:How do I manipulate a specific tooltip value of a Chart.js pie chart?如何操作 Chart.js 饼图的特定工具提示值?
【发布时间】:2017-07-24 14:32:10
【问题描述】:

我已成功显示来自Chart.js 的饼图。如果我将鼠标悬停在给定的切片上,它还会返回标签以及值。

但是,该值对用户不是很友好;我想把它转换成另一个值,让用户更容易理解。

如何访问给定切片的工具提示值?我似乎只能得到它们。

示例代码:

    this.examplePieChart  = new Chart(ctx1,{
        type: 'pie',
        data: {
            labels: byteLabels,
            datasets: [
                {
                    label: 'bytes',
                    data: BytesArr,
                    backgroundColor: defaultChartColors,
                },
            ]
        },
        options: {
            tooltips: {
                mode: 'label',
            }   
        }
    });

我可以访问工具提示数据的所有值,我的尝试是这样的:

            tooltips: {
                mode: 'label',
                callbacks: {
                    label: function (tooltipItem, data) {
                        let tmpArr = [];
                        for(let i = 0; i < data.datasets[0].data.length; i++){
                            tmpArr.push(data.datasets[0].data[i].fileSize());
                        }
                        return tmpArr;
                    }
                }
            }

我在哪里运行 fileSize() 将字节转换为 MiB/KiB。它可以工作 - 但是,当悬停切片时,它将在任何给定切片上显示所有工具提示,而不是我悬停的那个。

如何访问饼图的单个给定切片的数据值并对其进行操作?目前,我只能使用返回整个数组的data 值来访问它们。

没有上面的回调,我成功地显示了label: value,但我想为每个切片操作这个特定的值——不是一次所有的值:o)

【问题讨论】:

    标签: javascript reactjs charts chart.js


    【解决方案1】:

    最后,它可以这样访问:

            tooltips: {
                mode: 'label',
                callbacks: {
                             const currentValue = dataset.data[tooltipItem.index];
                             return currentValue.fileSize();
                    }
                }
            }
    

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多