问题标签 [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.
kibana - 在 Kibana 中使用 Vega-lite 创建箱线图
我想创建一个箱线图,显示某些 REST 端点的执行持续时间在某个时间段内是如何分布的。我想要很多盒子 - 例如一个 10 分钟。
我每 3 秒推送一次有关 REST 端点的信息。这是此类数据的示例。关于 /books 端点的示例信息。时间段内的总调用次数(3s),平均执行时间等。
如何为它创建一个箱线图?
当我尝试输入“mark”时:“boxplot” Kibana 说:“无效的标记类型“boxplot””
vega - 如何将背景图像添加到 vega/vegalite 画布并包含在导出 PNG 中
我有一个与Bob Baxley在Is it possible to add a background image to a plot in vega or vega-lite 中类似的问题?
使用 CSS 添加图像不会将其包含在实际画布中。虽然它看起来不错,但不会通过“导出为 PNG”操作导出。.drawImage()
到目前为止,尝试在画布上使用的选项确实可以显示图像,但是 PNG 导出仍然没有嵌入图像。
我使用的方法:
结果看起来不错,但使用“导出为 PNG”操作只会给我原始图表而没有添加图像。那么如何正确添加水印/背景图像?
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() 绘制线条。例如,如果我选择:
- 来自“性”的“男性”
- '城市' 来自 'urb'
- “年龄”中的“20 多岁”和“40 多岁”
然后2行:
- 男 - 城市 - 20 多岁
- 男性 - 城市 - 40 多岁
绘制。
但是,选择不像我预期的那样工作。例如,如果我从“sex”mark_rect() 中选择“Male”,从“urb”mark_rect() 中选择“Urban”,那么在“sex”mark_rect() 中会自动选择“Female”。无法选择“男性”和“城市”,即使数据框中有“男性”和“城市”的行。
我究竟做错了什么?
python - Altair - 通过滑块绑定过滤范围
我正在尝试实现与此示例类似的东西,除了不使用滑块来选择离散值之外,我希望它用作 a 中的截止点transform_filter
(即值 < 滑块值)。
现在我有这样的事情:
我尝试查看数据,slider
但找不到任何返回当前值的字段(.ref()
尝试)。我也尝试将 to 更改selection_single
为_multi
,_interval
但我遇到了无效的规范错误 - 我找不到任何方法来定义对binding_range
选择有意义的。
这可能在 altair 中吗?
d3.js - 在 Vegalite 图上指定纵横比/等比例
在 Vegalite xy 图表上,如何将数据纵横比指定为 1?换句话说,我希望从数据到 x 轴和 y 轴的绘图单位具有相同的缩放比例。在 Matplotlib 中,这是通过matplotlib.axes.Axes.set_aspect('equal')实现的。我将如何修改以下规范片段?
vega - 如何获得触摸拖动交互?
我正在开发一个 vega-lite 项目,我希望通过单击进行选择,并通过拖动选择进行更新。作为一个具体示例,请参见Vega-Lite 中 Jake Vanderplas 的多值工具提示的改编。单击即可进行选择,单击拖动会导致选择移动。
正如示例中所实现的那样,我发现将 mousedown 与 mousemove 事件合并为我提供了鼠标事件所需的交互:
现在,我希望它在触摸设备上也能类似地工作,以便可以通过触摸进行选择,并通过触摸拖动进行更新。我尝试了一种类似的方法来合并 touchstart 和 touchmove 事件:
但这似乎不适用于我的 iPhone 或 Firefox 开发者工具中的触摸模拟。在这两种情况下,触摸都会进行选择,但拖动不会更新选择。
关于为什么这不起作用或如何实现我想要的交互的任何想法?
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.
python - 当 x 轴包含重复项时,altair/vega-lite 中的 mark_line 重新排序数据
我注意到,当 x 轴上有重复项,y 轴上有不同的值时,没有考虑提供数据的顺序。最大值与前一点相关,最小值与下一点相关。例如,在创建 CDF(累积分布函数)时,这不是我所期望的。
我尝试提供EncodingSortField
索引,但这不起作用。我可以通过删除数据中具有最小值的行来绘制我想要的图表,但是我需要手动添加点。
这是设计使然吗?还是我错过了什么?
下面是一个可重现的例子。
谢谢。
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文件: