【问题标题】:Chartjs real time graph x axis movementChartjs 实时图 x 轴运动
【发布时间】:2017-08-13 19:35:12
【问题描述】:

我想用 Chartjs 显示一个图表,它显示实时数据并沿 x 轴缓慢滚动,我在这里用 js fiddle 尝试过,它就像疯狂地上下跳跃:https://jsfiddle.net/rsnufpq7/

图表应该只是移动到左侧,旧点不在视野之外,没有这个动画,就像这里的第二个例子一样:https://bost.ocks.org/mike/path/

var canvas = document.getElementById('myChart');
var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            fill: false,
            lineTension: 0.0,
            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: 5,
            pointHitRadius: 10,
            data: [65, 59, 80, 0, 56, 55, 40],
        }
    ]
};

var zero = 7;
function adddata(){

   var value = Math.floor((Math.random() * 10) + 1);;
      myLineChart.data.labels.push(zero);
      myLineChart.data.labels.splice(0, 1);
  myLineChart.data.datasets[0].data.splice(0, 1);
  myLineChart.data.datasets[0].data.push(value); 


  myLineChart.update();
  zero++;
}



   setInterval(function(){
   adddata();
    },1000);

var option = {
    showLines: true
};
var myLineChart = Chart.Line(canvas,{
    data:data,
  options:option
});

【问题讨论】:

标签: javascript graph charts chart.js


【解决方案1】:

您的代码按预期工作,唯一缺少的是您的 y 轴没有定义范围并且正在动态调整。

为了实现这一点,我已将您的选项扩展为如下所示。

var option = {
  showLines: true,
  scales: {
    yAxes: [{
      display: true,
      ticks: {
        beginAtZero:true,
        min: 0,
        max: 100  
      }
    }]
  }
};

我已经定义了 y 轴的最小值和最大值,它不再跳跃了。

这是一个有效的fiddle

【讨论】:

  • 这不是我问的问题,是否可以禁用动画,只将图形滑到左侧?
  • @Max 仅涉及上下弹跳部分。关于动画,我只知道如何禁用动画,但不知道如何让它们从右向左滑动。禁用动画使用animation: {duration: 0},。这是更新的fiddle的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2019-12-09
相关资源
最近更新 更多