问题标签 [vega-lite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
752 浏览

kibana - 在 Kibana 中使用 Vega-lite 创建箱线图

我想创建一个箱线图,显示某些 REST 端点的执行持续时间在某个时间段内是如何分布的。我想要很多盒子 - 例如一个 10 分钟。

我每 3 秒推送一次有关 REST 端点的信息。这是此类数据的示例。关于 /books 端点的示例信息。时间段内的总调用次数(3s),平均执行时间等。

如何为它创建一个箱线图?

当我尝试输入“mark”时:“boxplot” Kibana 说:“无效的标记类型“boxplot””

0 投票
1 回答
756 浏览

vega - 如何将背景图像添加到 vega/vegalite 画布并包含在导出 PNG 中

我有一个与Bob BaxleyIs it possible to add a background image to a plot in vega or vega-lite 中类似的问题?

使用 CSS 添加图像不会将其包含在实际画布中。虽然它看起来不错,但不会通过“导出为 PNG”操作导出。.drawImage()到目前为止,尝试在画布上使用的选项确实可以显示图像,但是 PNG 导出仍然没有嵌入图像。

我使用的方法:

结果看起来不错,但使用“导出为 PNG”操作只会给我原始图表而没有添加图像。那么如何正确添加水印/背景图像?

0 投票
1 回答
1346 浏览

python - 多个图表中的 altair 选择

我有一个包含列的数据框:'sex'、'urb'、'age'、'time'、'value'。

我需要从“sex”和“urb”中选择一个元素,从“age”列中选择多个元素,然后制作一个交互式折线图,x 轴为“时间”,y 为“值”,图例中为年龄。

我将 selection_multi() 添加到每个 'sex'、'urb' 和 'age' 列的单独 mark_rect(例如 y='sex:O',没有 x 轴)。

我希望 mark_line() 能够基于 selection_multi() 绘制线条。例如,如果我选择:

  1. 来自“性”的“男性”
  2. '城市' 来自 'urb'
  3. “年龄”中的“20 多岁”和“40 多岁”

然后2行:

  1. 男 - 城市 - 20 多岁
  2. 男性 - 城市 - 40 多岁

绘制。

但是,选择不像我预期的那样工作。例如,如果我从“sex”mark_rect() 中选择“Male”,从“urb”mark_rect() 中选择“Urban”,那么在“sex”mark_rect() 中会自动选择“Female”。无法选择“男性”和“城市”,即使数据框中有“男性”和“城市”的行。

我究竟做错了什么?

仪表板应如下所示

0 投票
1 回答
5869 浏览

python - altair 删除或抑制自动生成的图例

使用 altair 包时,我注意到创建图表时还会生成图例。以下代码:

生成此图:

牵牛星图

我的问题:有没有可能的方法来抑制图形输出中的这个图例?

0 投票
1 回答
1342 浏览

python - Altair - 通过滑块绑定过滤范围

我正在尝试实现与此示例类似的东西,除了不使用滑块来选择离散值之外,我希望它用作 a 中的截止点transform_filter(即值 < 滑块值)。

现在我有这样的事情:

我尝试查看数据,slider但找不到任何返回当前值的字段(.ref()尝试)。我也尝试将 to 更改selection_single_multi_interval但我遇到了无效的规范错误 - 我找不到任何方法来定义对binding_range选择有意义的。

这可能在 altair 中吗?

0 投票
1 回答
400 浏览

d3.js - 在 Vegalite 图上指定纵横比/等比例

在 Vegalite xy 图表上,如何将数据纵横比指定为 1?换句话说,我希望从数据到 x 轴和 y 轴的绘图单位具有相同的缩放比例。在 Matplotlib 中,这是通过matplotlib.axes.Axes.set_aspect('equal')实现的。我将如何修改以下规范片段?

0 投票
0 回答
85 浏览

vega - 如何获得触摸拖动交互?

我正在开发一个 vega-lite 项目,我希望通过单击进行选择,并通过拖动选择进行更新。作为一个具体示例,请参见Vega-Lite 中 Jake Vanderplas 的多值工具提示的改编。单击即可进行选择,单击拖动会导致选择移动。

正如示例中所实现的那样,我发现将 mousedown 与 mousemove 事件合并为我提供了鼠标事件所需的交互:

现在,我希望它在触摸设备上也能类似地工作,以便可以通过触摸进行选择,并通过触摸拖动进行更新。我尝试了一种类似的方法来合并 touchstart 和 touchmove 事件:

但这似乎不适用于我的 iPhone 或 Firefox 开发者工具中的触摸模拟。在这两种情况下,触摸都会进行选择,但拖动不会更新选择。

关于为什么这不起作用或如何实现我想要的交互的任何想法?

0 投票
2 回答
3920 浏览

vega-lite - Customise vega-lite Line Graph Axis Labels

What I want to do is really simple, but I just can't seem to get it right. I have a feeling I'm going to be embarrassed by the answer!

I have a line graph with "attempt" along the x-axis and "grade" along the y-axis, with grade being a number between 0 and 100. I simply want to change the y-axis so that, instead of seeing the raw number, a grade is show, say with 0 - 20 representing "E", 20-40 being "D" etc up to "A" (80-100). How can I do that? I don't want to use discrete values because I want to visually show where within a grade boundary a grade falls. I'm not sure whether I yet want to simply display the grade bands on the line or put them in the middle of their ticks, but just getting somewhere with this would help a lot!

Here is what I've been working with in the vega-lite editor:

Thanks in advance.

0 投票
1 回答
439 浏览

python - 当 x 轴包含重复项时,altair/vega-lite 中的 mark_line 重新排序数据

我注意到,当 x 轴上有重复项,y 轴上有不同的值时,没有考虑提供数据的顺序。最大值与前一点相关,最小值与下一点相关。例如,在创建 CDF(累积分布函数)时,这不是我所期望的。

我尝试提供EncodingSortField索引,但这不起作用。我可以通过删除数据中具有最小值的行来绘制我想要的图表,但是我需要手动添加点。

这是设计使然吗?还是我错过了什么?

下面是一个可重现的例子。

altair图表 reprexpy 包于 2018-11-15 创建

谢谢。

0 投票
1 回答
584 浏览

javascript - 尝试在 Vue + Vuex 项目中嵌入 Vega 图表时出现未捕获的错误

我正在尝试在 Vue.js(与 vuex 一起用于状态管理)项目中使用vega-embed 。基本上,后端提供一个 Vega json 对象,前端通过带有点击事件的 HTTP GET 请求获取该对象。但是,我必须单击两次才能显示绘图,并且第一次单击事件总是会触发错误“ Uncaught (in promise) TypeError: Cannot read property '$schema' of null”。有人可以帮我调试吗?非常感谢。详情如下图:

vue组件文件:

...和商店js文件: