Javascript chart.js-折线图-我能想象出积极/消极的变化吗?

Javascript chart.js-折线图-我能想象出积极/消极的变化吗?,javascript,chart.js,Javascript,Chart.js,我想可视化我的数据集的每个数据值是大于还是小于折线图中的前一个值 下面是一个普通折线图的示例:jsfiddle.net/mrr1kp2t 最佳情况下,我希望在每个点上方都有一个向上或向下的箭头 有没有一个简单的方法来完成这项工作? 到目前为止,我所做的最好的工作就是更改每个点的点颜色,但这不是直观的。箭头很容易理解。你的问题似乎很有趣。所以,我继续创建了下面的图表插件,它将完成这项工作 Chart.plugins.register({ afterDatasetsDraw: function

我想可视化我的数据集的每个数据值是大于还是小于折线图中的前一个值

下面是一个普通折线图的示例:jsfiddle.net/mrr1kp2t

最佳情况下,我希望在每个点上方都有一个向上或向下的箭头

有没有一个简单的方法来完成这项工作?

到目前为止,我所做的最好的工作就是更改每个点的点颜色,但这不是直观的。箭头很容易理解。

你的问题似乎很有趣。所以,我继续创建了下面的图表插件,它将完成这项工作

Chart.plugins.register({
   afterDatasetsDraw: function(c) {
      let ctx = c.ctx;
      let prevY;
      c.data.datasets.forEach(function(e, i) {
         let meta = c.getDatasetMeta(i);
         if (meta.hidden) return;
         meta.data.forEach(function(e) {
            let x = e.tooltipPosition().x;
            let y = e.tooltipPosition().y;
            let radius = e._model.radius;
            let moveY = prevY && (y < prevY ? y - (radius * 3) : y + (radius * 3));
            let lineY = prevY && (y < prevY ? y - (radius * 2) : y + (radius * 2));
            let color = prevY && (y < prevY ? 'green' : 'red');

            // draw arrow
            ctx.save();
            ctx.fillStyle = color;
            ctx.beginPath();
            ctx.moveTo(x, moveY);
            ctx.lineTo(x + radius, lineY);
            ctx.lineTo(x - radius, lineY);
            ctx.closePath();
            ctx.fill()
            ctx.restore();
            prevY = y;
         })
      });
   }
});
Chart.plugins.register({
afterDatasetsDraw:函数(c){
设ctx=c.ctx;
让普雷维;
c、 数据。数据集。forEach(函数(e,i){
设meta=c.getDatasetMeta(i);
if(meta.hidden)返回;
meta.data.forEach(函数(e){
设x=e.tooltipPosition().x;
设y=e.tooltipPosition().y;
设半径=e.\U模型半径;
设moveY=prevY&(y
ᴅᴇᴍᴏ

Chart.plugins.register({
afterDatasetsDraw:函数(c){
设ctx=c.ctx;
让普雷维;
c、 数据。数据集。forEach(函数(e,i){
设meta=c.getDatasetMeta(i);
if(meta.hidden)返回;
meta.data.forEach(函数(e){
设x=e.tooltipPosition().x;
设y=e.tooltipPosition().y;
设半径=e.\U模型半径;
设moveY=prevY&(y

你的问题似乎很有趣。所以,我继续创建了下面的图表插件,它将完成这项工作

Chart.plugins.register({
   afterDatasetsDraw: function(c) {
      let ctx = c.ctx;
      let prevY;
      c.data.datasets.forEach(function(e, i) {
         let meta = c.getDatasetMeta(i);
         if (meta.hidden) return;
         meta.data.forEach(function(e) {
            let x = e.tooltipPosition().x;
            let y = e.tooltipPosition().y;
            let radius = e._model.radius;
            let moveY = prevY && (y < prevY ? y - (radius * 3) : y + (radius * 3));
            let lineY = prevY && (y < prevY ? y - (radius * 2) : y + (radius * 2));
            let color = prevY && (y < prevY ? 'green' : 'red');

            // draw arrow
            ctx.save();
            ctx.fillStyle = color;
            ctx.beginPath();
            ctx.moveTo(x, moveY);
            ctx.lineTo(x + radius, lineY);
            ctx.lineTo(x - radius, lineY);
            ctx.closePath();
            ctx.fill()
            ctx.restore();
            prevY = y;
         })
      });
   }
});
Chart.plugins.register({
afterDatasetsDraw:函数(c){
设ctx=c.ctx;
让普雷维;
c、 数据。数据集。forEach(函数(e,i){
设meta=c.getDatasetMeta(i);
if(meta.hidden)返回;
meta.data.forEach(函数(e){
设x=e.tooltipPosition().x;
设y=e.tooltipPosition().y;
设半径=e.\U模型半径;
设moveY=prevY&(y
ᴅᴇᴍᴏ

Chart.plugins.register({
afterDatasetsDraw:函数(c){
设ctx=c.ctx;
让普雷维;
c、 数据。数据集。forEach(函数(e,i){
设meta=c.getDatasetMeta(i);
if(meta.hidden)返回;
meta.data.forEach(函数(e){
设x=e.tooltipPosition().x;
设y=e.tooltipPosition().y;
设半径=e.\U模型半径;
设moveY=prevY&(y