我使用这个 VEGA-lite 示例的克隆及其图表规范作为参考,并添加了renderer选项
{
"$schema": "https://vega.github.io/schema/vega-lite/v3.json",
"description": "A simple ...",
"..ETC..": "...",
"renderer": "svg"
}
Run Code Online (Sandbox Code Playgroud)
但图表仍为 PNG...如何使用renderer选项?
渲染器不是 Vega-Lite 规范的属性,而是Vega-Embed 选项。
如何指定它取决于您渲染图表的方式。例如,如果您在 vega 编辑器中打开图表,则可以从右上角的“设置”菜单中选择 SVG 渲染器。
如果您直接生成 HTML,则可以将嵌入选项传递给调用vegaEmbed;例如:
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vega@5"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@4"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6"></script>
</head>
<body>
<div id="vis"></div>
<script>
const spec = "bar.vl.json";
vegaEmbed("#vis", spec, {renderer: "svg"})
.then(result => console.log(result))
.catch(console.warn);
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
还可以在usermeta图表规范本身的字段内表达 Vega-Embed 选项;例如:
{
"$schema": "https://vega.github.io/schema/vega-lite/v4.json",
"usermeta": {"embedOptions": {"renderer": "svg"}},
"description": "A simple bar chart with embedded data.",
"data": {
"values": [
{"a": "A", "b": 28}, {"a": "B", "b": 55}, {"a": "C", "b": 43},
{"a": "D", "b": 91}, {"a": "E", "b": 81}, {"a": "F", "b": 53},
{"a": "G", "b": 19}, {"a": "H", "b": 87}, {"a": "I", "b": 52}
]
},
"mark": "bar",
"encoding": {
"x": {"field": "a", "type": "ordinal"},
"y": {"field": "b", "type": "quantitative"}
}
}
Run Code Online (Sandbox Code Playgroud)
这应该可以在任何 vega-embed 调用中正常工作(但不会工作,例如,在使用不同渲染方法的 vega 编辑器中)。
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |