Chart.js如何仅将线高设置为点? [英] Chart.js How to set line height only to the points?

查看:43
本文介绍了Chart.js如何仅将线高设置为点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何仅设置线高直到点数?我使用了 gridLines:display:false,但它隐藏了所有行。

How to set line height only until points? I have used 'gridLines: display:false' but it hides all lines. Here on image below how it should be

推荐答案

它不是Chart.js中的本机选项,但是您可以通过插件自己实现。参见下面的代码中的注释。

It's not a native option in Chart.js but you can implement it yourself via plugin. See the annotations in the below code.

new Chart(document.getElementById('chart'), {
  type: 'line',
  data: {
    labels: [0, 1, 2, 3, 4, 5],
    datasets: [{
      label: 'series 1',
      data: [0, 2, 4, 3, 1, 0]
    }]
  },
  options: {
    maintainAspectRatio: false,
    scales: {
      xAxes: [{
        gridLines: {
          display: false, // must be false since we're going to draw our own 'gridlines'!
          color: 'rgba(255, 0, 0, .2)', // can still set the colour.
          lineWidth: 5 // can still set the width.
        }
      }],
      yAxes: [{
        gridLines: {
          display: false
        },
        ticks: {
          beginAtZero: true
        }
      }]
    }
  },
  plugins: [{ // this is the magical bit :)
    afterRender: function(c, options) {
      let meta = c.getDatasetMeta(0),
        max;
      c.ctx.save();
      c.ctx.strokeStyle = c.config.options.scales.xAxes[0].gridLines.color;
      c.ctx.lineWidth = c.config.options.scales.xAxes[0].gridLines.lineWidth;
      c.ctx.beginPath();
      meta.data.forEach(function(e) {
        if (max == undefined || c.config.data.datasets[0].data[e._index] > max) {
          max = c.config.data.datasets[0].data[e._index];
        }
        c.ctx.moveTo(e._model.x, meta.dataset._scale.bottom);
        c.ctx.lineTo(e._model.x, e._model.y);
      });
      c.ctx.textBaseline = 'top';
      c.ctx.textAlign = 'right';
      c.ctx.fillStyle = 'black';
      c.ctx.fillText('Max value: ' + max, c.width - 10, 10);
      c.ctx.stroke();
      c.ctx.restore();
    }
  }]
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>
<canvas id="chart"></canvas>

这篇关于Chart.js如何仅将线高设置为点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆