首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改Chart.JS中散射图的信息框

问修改Chart.JS中散射图的信息框
EN

Stack Overflow用户
提问于 2020-01-29 10:00:59
回答 1查看 884关注 0票数 0

我正在使用chart.js中的散点图,我需要修改我在点上方显示的信息。我认为包含这些信息的框称为工具提示。

下面我展示我现在所拥有的,

​

​

我想要做的是修改第一个,并把14:52像x轴一样。

在x轴上很容易,

代码语言:javascript
复制
options: {
    scales: {
        xAxes: [{
            type: 'linear',
            position: 'bottom',
            ticks: {
                callback: function(value, index, values) {
                    var time = String(value);
                    if (time.length == 3){
                        time = '0' + time;
                    }
                    var hour = time[0] + time[1];
                    var min = time[2] + time[3];
                    var label = hour + ':' + min;
                    return label;
                }
            }
        }]
    }
}

我想在这里我必须使用相同的函数,但我不知道在哪里。我无法访问该框的信息,不是它的名字工具提示吗?例如,我正在执行下面的代码,但是没有任何改变。

代码语言:javascript
复制
tooltips:{
    title: "New title"
}

我怎么修改那个盒子?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-29 13:56:36

工具提示中的title和其他项可以使用回调函数进行自定义。正确的语法如下所示。

代码语言:javascript
复制
tooltips:{
    callbacks: {
        title: (tooltipItem, data) => "New title"
    }
}

还请查看从https://www.chartjs.org/samples/latest/tooltips/callbacks.html派生的以下更复杂的示例。无论您使用的是scatter图还是line图表,这都没有什么区别。

​

代码语言:javascript
复制
new Chart(document.getElementById('myChart'), {
    type: 'line',
    data: {
        labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
        datasets: [{
            label: 'My First dataset',
            borderColor: 'red',
            backgroundColor: 'red',
            data: [15, 22, 18, 28, 8, 13, 24],
            fill: false,
        }, {
            label: 'My Second dataset',
            borderColor: 'blue',
            backgroundColor: 'blue',
            data: [5, 31, 15, 22, 19, 29, 12],
            fill: false,
        }]
    },
    options: {
        responsive: true,
        title: {
            display: true,
            text: 'Chart.js Line Chart - Custom Information in Tooltip'
        },
        tooltips: {
            mode: 'index',
            callbacks: {
                title: (tooltipItem, data) => data.labels[tooltipItem[0].index],
                footer: (tooltipItems, data) => {
                    var sum = 0;
                    tooltipItems.forEach(function(tooltipItem) {
                        sum += data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
                    });
                    return 'Sum: ' + sum;
                },
            },
            footerFontStyle: 'normal'
        },
        hover: {
            mode: 'index',
            intersect: true
        },
        scales: {
            xAxes: [{
                display: true,
                scaleLabel: {
                    show: true,
                    labelString: 'Month'
                }
            }],
            yAxes: [{
                display: true,
                scaleLabel: {
                    show: true,
                    labelString: 'Value'
                }
            }]
        }
    }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart" height="100"></canvas>

​

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59964622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档