Streaming Vega Vega lite流媒体
我开始使用织女星,现在我正在尝试流式传输我的数据,以很好地刷新我的图表。我遵循了这个doc(),到目前为止没有成功。我发现的示例在数组中有值,我的示例在一个定期刷新的JSON文件中。我最终得到了这段代码,它正确地显示了我想要的图形,但它不会刷新我的数据Streaming Vega Vega lite流媒体,streaming,vega,vega-lite,Streaming,Vega,Vega Lite,我开始使用织女星,现在我正在尝试流式传输我的数据,以很好地刷新我的图表。我遵循了这个doc(),到目前为止没有成功。我发现的示例在数组中有值,我的示例在一个定期刷新的JSON文件中。我最终得到了这段代码,它正确地显示了我想要的图形,但它不会刷新我的数据 <html> <head> <title>A title</title> <meta charset="utf-8" /> <script src="
<html>
<head>
<title>A title</title>
<meta charset="utf-8" />
<script src="https://cdn.jsdelivr.net/npm/vega@5.8.1"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@4.0.0-beta.12"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6.1.0"></script>
<style media="screen">
/* Add space between Vega-Embed links */
.vega-actions a {
margin-right: 5px;
}
</style>
</head>
<body>
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vega@5"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@5"></script>
</head>
<body>
<div id="vis"></div>
<script>
var vlSpec = {
data: {"url": "http://localhost:8123/d.json", "name":"table"},
mark: "bar",
"width": 1240,
"encoding": {
"y": {"field": "task", "type": "ordinal", "sort":"x2"},
"x": {"field": "start", "type": "temporal", "aggregate":"sum"},
"x2": {"field": "end", "type": "temporal"},
"color": {"field": "status", "type": "nominal"}
}
};
// Embed visualization and save view as window.view:
vegaEmbed('#vis', vlSpec).then(function(res) {
window.setInterval(function() {
var changeSet = vega
.changeset()
.insert()
res.view.change('table', changeSet).run();
}, 1000);
});
</script>
</body>
</html>
头衔
/*在Vega嵌入链接之间添加空间*/
.织女星行动a{
右边距:5px;
}
var vlSpec={
数据:{“url”:http://localhost:8123/d.json,“名称”:“表”},
马克:“酒吧”,
“宽度”:1240,
“编码”:{
“y”:{“字段”:“任务”,“类型”:“序号”,“排序”:“x2”},
“x”:{“字段”:“开始”,“类型”:“时态”,“聚合”:“总和”},
“x2”:{“字段”:“结束”,“类型”:“时态”},
“颜色”:{“字段”:“状态”,“类型”:“标称”}
}
};
//嵌入可视化并将视图另存为窗口。视图:
VegameBed(“#vis”,vlSpec)。然后(函数(res){
setInterval(函数(){
var变更集=织女星
.changeset()
.插入()
res.view.change('table',changeSet.run();
}, 1000);
});
我的问题似乎是insert(),在文档示例中,他们插入了生成数据的函数的结果,我应该在这里插入我的JSON文件——我尝试了fetch的不同变体,但没有成功
任何帮助都将不胜感激
谢谢让我回答我自己的问题 首先,我使用jquery:
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
以及我的JSON文件中的VEGA流数据:
vegaEmbed('#vis', vlSpec).then(function(res) {
var newdata ;
window.setInterval(function() {
jQuery.getJSON("http://localhost:8123/d.json", function(data) {
newdata = data;
})
var changeSet = vega
.changeset()
.remove(vega.truthy)
.insert(newdata)
console.log (newdata)
res.view.change('table', changeSet).run();
}, 1000);
});
它就像一个符咒 让我回答我自己的问题 首先,我使用jquery:
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
以及我的JSON文件中的VEGA流数据:
vegaEmbed('#vis', vlSpec).then(function(res) {
var newdata ;
window.setInterval(function() {
jQuery.getJSON("http://localhost:8123/d.json", function(data) {
newdata = data;
})
var changeSet = vega
.changeset()
.remove(vega.truthy)
.insert(newdata)
console.log (newdata)
res.view.change('table', changeSet).run();
}, 1000);
});
它就像一个符咒