0

我在这里尝试了 observablehq 上的 vega-lite-api 。

这是我的代码:

将这两个放在不同的单元格中工作:

obj = vl.markPoint()
  .data(df)
  .encode(vl.y().fieldN('city'));

在下一个单元格中:

obj.render()

如果我将两者放在同一个单元格中,它会给出SyntaxError: Unexpected token

obj2 = vl.markPoint()
  .data(df)
  .encode(vl.y().fieldN('city'));

obj2.render();
^

为什么会这样?

4

2 回答 2

1

如果你想把代码放到同一个单元格中,你可以像这样链接调用来渲染:

vl.markPoint()
  .data(df)
  .encode(vl.y().fieldN('city'))
  .render()

或者您可以使用带有花括号的块单元,如下所示:

{
  const obj = vl.markPoint()
    .data(df)
    .encode(vl.y().fieldN('city'));

  return obj.render();
}

有关可观察 JavaScript 的更多信息:

https://observablehq.com/@observablehq/observables-not-javascript

于 2022-02-12T20:07:29.307 回答
0

对于 obj 你在使用它之前有一个定义......

obj = N {
  Symbol(data): Object {mark: h, data: Object, encoding: h}
  <prototype>: N {}
}

我猜你忘记了obj2?

于 2022-02-12T19:32:55.823 回答