如何使用chart.js在点悬停中显示多个值

时间:2017-03-16 16:22:09

标签: javascript html charts chart.js chart.js2

我想知道如果可以在chart.js中的点悬停上显示更多值。

看看这个fiddle。 这是一个取自chart.js网站的smiple图示例。如果我悬停一个点,它会显示数据集值。

我如何展示其他价值。喜欢这个阵列。

[65, 59, 80, 81, 56, 55, 40]

如果我想显示这个数组值 [1, 2, 3, 4, 5, 6, 7]。就像我想要显示编号。这只是一个例子,实际上我想显示更多的两个值,但不想在图表上仅在pointhover中显示它。就像在65上一样,它告诉它是第1个值。

非常感谢任何形式的帮助。

3 个答案:

答案 0 :(得分:5)

是的,请使用工具提示选项,如下所示



var ctx = document.getElementById('chart1').getContext("2d");
    var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            fill: false,
            lineTension: 0.1,
            backgroundColor: "rgba(75,192,192,0.4)",
            borderColor: "rgba(75,192,192,1)",
            borderCapStyle: 'butt',
            borderDash: [],
            borderDashOffset: 0.0,
            borderJoinStyle: 'miter',
            pointBorderColor: "rgba(75,192,192,1)",
            pointBackgroundColor: "#fff",
            pointBorderWidth: 1,
            pointHoverRadius: 5,
            pointHoverBackgroundColor: "rgba(75,192,192,1)",
            pointHoverBorderColor: "rgba(220,220,220,1)",
            pointHoverBorderWidth: 2,
            pointRadius: 1,
            pointHitRadius: 10,
            data: [65, 59, 80, 81, 56, 55, 40],
            spanGaps: false,
        }
    ]
};



var options = {
        responsive: true,
        title: {
            display: true,
            position: "top",
            text: 'anything',
            fontSize: 18,
            fontColor: "#111"
        },
        tooltips: {
                enabled: true,
                mode: 'single',
                callbacks: {
                    label: function(tooltipItems, data) { 
                       var multistringText = [tooltipItems.yLabel];
                           multistringText.push('Another Item');
                           multistringText.push(tooltipItems.index+1);
                           multistringText.push('One more Item');
                        return multistringText;
                    }
                }
            },
        legend: {
            display: true,
            position: "bottom",
            labels: {
                fontColor: "#333",
                fontSize: 16
            }
        },
        scales:{
            yAxes:[{
                ticks:{
                    min:0

                }
            }]

        }
    };
var myLineChart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: options
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.js"></script>
<canvas id="chart1"></canvas>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果要在工具提示中的现有项目下方显示数据,可以使用3种不同的工具提示footer回调。只需将您想要显示的内容定义为chart.js范围之外的数组,并使用索引引用它。

tooltips: {
    enabled: true,
    mode: 'single',
    callbacks: {
        beforeFooter: function(tooltipItems, data) { 
          return 'Point #: ' + footerLine1[tooltipItems[0].index];
        },
        footer: function(tooltipItems, data) { 
          return 'Other Data: ' + footerLine2[tooltipItems[0].index];
        }
    }
},

请记住,您只有3行可以使用(例如3个页脚回调)

请参阅示例here

答案 2 :(得分:1)

工具提示:{ 模式:“索引” }

将此添加到选项