美文网首页
如何在ChartJs 的折线图中显示数据值或索引标签

如何在ChartJs 的折线图中显示数据值或索引标签

作者: rainy66 | 来源:发表于2019-08-10 13:41 被阅读0次

如何在Chartjs的折线图中显示数据值或索引值,如图所示:


图例.PNG

简介

Chart.js是一款不依赖任何外部js库的图标插件,具体的使用方法可查看Chart.js官网

需求

Chart.js并没有直接提供显示具体数据的功能,需要鼠标移上去才会显示数值,但是现在做项目需求时,需要在折线图上的区域上数据显示在点上,如上图所示

代码实现:

该代码可自动填充颜色。为了防止鼠标悬停时闪烁,需要添加以下代码:
hover: { animationDuration: 0 // 防止鼠标移上去,数字闪烁 },

完整的代码

<!DOCTYPE html>
<html>
<head>
  <title>chartjs示例</title>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
</head>
<body>
  <div>
    <div style="width: 400px;height: 400px">
      <canvas id="myChart" width="400" height="400"></canvas>  
    </div>
  </div>
</body>
  <script>
    var ctx = document.getElementById('myChart').getContext('2d');
    var myChart = new Chart(ctx, {
      type: 'line',
      data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        datasets: [{
          label: '# of Votes',
          data: [12, 20, 3, 5, 2, 3],
          backgroundColor: [
            'rgba(255, 99, 132, 0.2)',
            'rgba(54, 162, 235, 0.2)',
            'rgba(255, 206, 86, 0.2)',
            'rgba(75, 192, 192, 0.2)',
            'rgba(153, 102, 255, 0.2)',
            'rgba(255, 159, 64, 0.2)'
          ],
          borderColor: [
            'rgba(255, 99, 132, 1)',
            'rgba(54, 162, 235, 1)',
            'rgba(255, 206, 86, 1)',
            'rgba(75, 192, 192, 1)',
            'rgba(153, 102, 255, 1)',
            'rgba(255, 159, 64, 1)'
          ],
          borderWidth: 1
        }]
      },
      options: {
        hover: {
          animationDuration: 0  // 防止鼠标移上去,数字闪烁
        },
        animation: {           // 这部分是数值显示的功能实现
          onComplete: function () {
            var chartInstance = this.chart,
            ctx = chartInstance.ctx;
            // 以下属于canvas的属性(font、fillStyle、textAlign...)
            ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
            ctx.fillStyle = "black";
            ctx.textAlign = 'center';
            ctx.textBaseline = 'bottom';
            this.data.datasets.forEach(function (dataset, i) {
                var meta = chartInstance.controller.getDatasetMeta(i);
                meta.data.forEach(function (bar, index) {
                    var data = dataset.data[index];
                    ctx.fillText(data, bar._model.x, bar._model.y-5);
                });
            });
          }
        }
      }
    });
  </script>
</html>

相关文章

  • 如何在ChartJs 的折线图中显示数据值或索引标签

    如何在Chartjs的折线图中显示数据值或索引值,如图所示: 简介 Chart.js是一款不依赖任何外部js库的图...

  • echart清空折线图数据

    如何在获取新的数据前清空echarts折线图、柱状图中所有的折线和柱子? 在echarts的操作实际运用中...

  • 手把手教你Tableau绘制折线图(四)

    手把手教你 Tableau 绘制折线图 折线图是将整个视图中的各个数据点连接起来,通常用于显示数据随着时间变化的趋...

  • 解决echarts的叠堆折线图数据出现坐标和值对不上的问题

    说一个小bug,解决echarts的叠堆折线图数据出现坐标和值对不上的问题。 在echarts的叠堆折线图中,有这...

  • Series

    一维数组型对象,包含值序列和索引。 两个属性 用标签标识每个数据点 使用标签进行索引 数学操作保存索引值连接 Se...

  • 数据可视化

    参考资料 chartjs官网 搜狗浏览器不能正常显示? chartjs中文网 chartjs highcharts...

  • 关于hellocharts

    关于折线图标中的特殊情况 1、设置最高值/最低值2、当只有两组数据且两组数据Y轴值相同时,折线图不显示3、当有且只...

  • echart动态加载数据之折线图

    几个重点 1》放在折线点的时候显示出相应x和y坐标相应的数据信息 2》修改图表的跟父容器的间距 3》设置折线图中折...

  • 小技巧大美化 | 折线图也能“如丝般顺滑”

    折线图用于显示随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。在有很多数据点...

  • ix、iloc、loc

    2019-06-091、#loc通过标签索引数据,即通过index和column的值进行索引。2、#iloc通过行...

网友评论

      本文标题:如何在ChartJs 的折线图中显示数据值或索引标签

      本文链接:https://www.haomeiwen.com/subject/hixrjctx.html