在不改变整个绘图的情况下更改比例的域

时间:2017-06-07 20:11:18

标签: javascript vega

我正在进行实时模拟。我生成一小时的数据,但我只想呈现其中的一部分,并在接近右边缘时滚动绘图。我定义了两个信号:

    "signals": [
     {
      "name": "timeStart", 
      "init":0
     },
     {
      "name": "timeEnd", 
      "init": 480000 }
     ],

和比例

    "scales": [
        {
            "name": "x",
            "type": "time",
            "range": "width",
            "nice": "minute",
            "domainMin": {"signal": "timeStart"},
            "domainMax": {"signal": "timeEnd"},
            "zero": false
        }

我在标记中有一个过滤器,以确保我只显示内部数据。

在我的javascript中,我更新了timeStart和timeEnd的值,并且该图现在包含了我想要的数据的子集,但是整个图表正好被我添加到timeStart的时间量和timeEnd。不是我想要的。在轴上设置偏移不起作用。我错过了什么?

2 个答案:

答案 0 :(得分:0)

我弄明白我错过了什么。添加

    "padding": {"left":100, "right": 100, "top": 50, "bottom":100},

修复了问题。

答案 1 :(得分:0)

您是否介意共享执行过滤的代码部分?我这样编写的Vega 3代码适用于带有符号标记的一个规范,但不适用于带有标记的其他规范。

data: [
    {
        name: 'table',
        transform: [
            { type: 'filter', expr: 'datum.l >= timeStart && datum.l <= timeEnd' }
        ],      
        values: [blah blah]
    }
]

https://github.com/vega/vega/issues/113中,kjavia提到了一个&#34;撕裂&#34;使用 line 标记在我的规范中看到的效果。