Visjs条形图的时间间隔而不是单个时间戳

时间:2016-10-18 11:20:26

标签: javascript vis.js

是否有方法/解决方法来构建visjs条形图的时间间隔而不是单个时间戳?

例如,我想以10分钟的间隔显示条形图。为条形图设置数据的标准方法是在X轴上具有单个坐标的数组中:

 var items = [
    {x: '2016-10-18 18:00:00', y: 10},
    {x: '2014-10-18 18:10:00', y: 8},
    {x: '2014-10-18 18:20:00', y: 9},
    {x: '2014-10-18 18:30:00', y: 5},
    ...
 ]

如果在选项中我们设置了右对齐和大条宽(例如50像素),那么在一定比例下,图表会很好地显示 - 当条形达到下一个时间戳时,其宽度会缩小而不会重叠。请注意,此处的实际条形宽度小于选项

中设置的值
var options = {
  style:'bar',
  barChart: {width:50, align:'right'},
  drawPoints: false
}

graph with adjacent bars

但是如果图形比例发生变化,在某些时候,条形图将开始覆盖不完整的间隔(本例中为10分钟间隔)。由于选项中设置的条宽度未达到此刻度的以下条的开头:

graph with not adjacent bars

我尝试将选项中的条宽设置为更大的值,但在某些时候条形开始重叠:

graph with overlapping bars

有什么方法可以改善吗?

1 个答案:

答案 0 :(得分:0)

事实证明,这可以通过向项目添加“结束”属性来实现(不确定它是否始终存在或最近添加)。要获得10分钟的间隔,问题中的项目应如下配置:

 var items = [
    {x: '2016-10-18 18:00:00', end: '2016-10-18 18:10:00', y: 10},
    {x: '2014-10-18 18:10:00', end: '2014-10-18 18:20:00', y: 8},
    {x: '2014-10-18 18:20:00', end: '2014-10-18 18:30:00', y: 9},
    {x: '2014-10-18 18:30:00', end: '2014-10-18 18:40:00', y: 5},
    ...
 ]

end属性用于项目时,width中的options属性将被忽略。