问题标签 [altair]

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 回答
688 浏览

vega-lite - 是否可以创建与 Altair/Vega-Lite 中的选择过滤器一起使用的自定义聚合?

几天以来,我一直在探索 Altair 以创建交互式图表。我正在尝试创建一个包含两层的图表,两者都显示随着时间的推移累积的股票收益。刷过一个图表应该在另一个图表中提供放大视图,累积回报从 0 开始实时更新。

在 pandas 中,您可以在可见时间段内按如下方式计算:

我不知道如何以及是否可以用 altair 做到这一点。

我已经看到有两种可能的转换:

  1. 在编码通道内
  2. 使用顶级转换(例如,transform_aggregate 和 transform_calculate)

我过去曾成功使用 1(例如,用于创建两个图表,其中一个用作另一个的缩放选择),我无法使 2 工作。

举一个具体的简单例子,我在下面垂直连接两个图表。底部的选择应显示第一个选择的运行总和。

这是我目前的尝试这样做会产生我不完全理解的行为(从左到右刷似乎做我想要的,从右到左刷会导致向下倾斜的运行总和,取消选择会产生奇怪的结果).. .

这是编辑器中相应的 vega-lite 规范

0 投票
1 回答
2642 浏览

python - Altair 为条形图设置常量标签颜色

官方网站提供了在 Altair 中为条形图设置标签的示例:https ://altair-viz.github.io/gallery/bar_chart_with_labels.html

但是,一旦您想将条形图中的“颜色”参数设置为以变量为条件,标签颜色会自动匹配条形图的颜色,如下图所示。但是,我的意图是始终保持标签颜色不变,例如黑色。如果要将标签显示为百分比,这对于堆叠条形图尤其有用。似乎在 mark_text 中设置“color='black'”在这里不起作用;可能是因为它基于使用“颜色”参数作为“年份”的“条形图”。但是我找不到一种直观的方法来解耦这个参数。

带有可变标签颜色的条形图

带有彩色标签的堆积条形图示例

0 投票
3 回答
4620 浏览

python - Altair 十六进制的默认调色板颜色

如何找到 Altair 默认调色板的十六进制表示?每个绘图工具都有其优点和缺点,我通常最终生成由 Seaborn + Altair 组成的可视化。我想在 Seaborn 中匹配 Altair 颜色。对于 Seaborn,您可以获得 color_palette 的相关 HEX 颜色表示,如下所示,并且想知道如何在 Altair 中获得类似的颜色信息。

0 投票
1 回答
1845 浏览

python - 在 Altair 中为分层图表保留特定的 Y 轴顺序/排序

我想在 Altair 文档中显示的格子图上构建:https ://altair-viz.github.io/gallery/beckers_barley_trellis_plot.html 。

在下面显示的代码中,我正在创建具有特定 Y 轴排序的“mark_rule”图表,并将其与“mark_point”分层以突出显示端点。但是,当我在 "mark_rule" 顶部添加 "mark_point" 图层时,Y 轴排序/顺序会丢失;而且我无法重新排序/重新排序分层图表的 Y 轴。请参阅下面具有正确 Y 轴排序的“mark_rule”图和“mark_rule + park_point”图表,其中 Y 轴排序在分层后丢失。我想知道我们如何在分层后重新覆盖 Y 轴排序。为 Y 轴排序添加最终“编码”似乎没有帮助。

以下是附加图像的可重现代码:

具有正确 Y 轴排序的 mark_rule

mark_rule + mark_point 与 Y 轴排序丢失

0 投票
1 回答
877 浏览

python - 使用热阴影和文本值过滤 altair 热图

我正在尝试使用 Altair lib 创建热图,但我希望使用滑块过滤我的数据以获取不同的视图。滑块适用于仅标准颜色的热图,但是当我尝试向框中添加文本以描述每个单元格中的值时,我得到下面的 javascript 错误。(在没有任何过滤器滑块的情况下,将文本添加到热图中可以正常工作。)

这返回Javascript Error: Duplicate signal name: "my_year_slider_tuple"

0 投票
1 回答
392 浏览

vega-lite - 是否可以在 vega-lite 中注册命名的自定义配色方案

我想在 vega-lite中注册一个自定义的Multi-Hue Sequential Color Scheme 。

我对文档的阅读是,我只能创建config.range对象来设置自定义色阶,但无法公开插值函数,从而消除了自定义方案的可能性。

Vega 规范允许使用vega.schemevega.schemeDescretized 函数

我想遵循d3-scale-chromatic此处的示例)中演示的模式,但我无法在 vega-lite 中找到执行此操作的入口点。

0 投票
1 回答
69 浏览

vega - 再记录一次,图表消失 - VL 有限制吗?

我的规范中有 1731 条记录。如果我再添加一条记录,并给它一个唯一的 ID(例如,1732),图表就会消失。

由于正文限制,我无法共享图表的 URL。我无法缩短 URL,因为它太长了。所以,我必须显示截图。

1731 条记录:

在此处输入图像描述

1732 条记录

在此处输入图像描述

谁能解释这里发生了什么?

0 投票
1 回答
772 浏览

python - 如何计算标签/工具提示的聚合聚合?

如果我有聚合的时间序列数据。是否可以执行额外的聚合并将其显示在工具提示中?

这是我的问题的一个更明确的例子。对于下面的代码示例,我们显示了三种不同类型水果按月汇总的权重总和。是否也可以将每个月的总重量(和/或每个月按水果划分的标准化重量百分比)显示为标签或工具提示?

我玩过transform_aggregate但似乎无法让它工作(它最终破坏了group by水果)。:(

0 投票
1 回答
547 浏览

python-3.x - 如何更改 altair 中 geo_shape 的限制(python vega-lite)

我正在尝试使用 Altair 在 python 中绘制美国三个州的位置。我看到了关于美国地图的教程,但我想知道是否有办法将图像缩放到仅有的三个感兴趣的州,即纽约、新泽西和 CT。

目前,我有以下代码:

我检查了 us_10m.url 数据集,似乎没有指定各个状态的字段。所以我希望我能以某种方式将背景的 xlim 和 ylim 更改为例如 [-80,-70] 和 [35,45]。我想放大到有数据点(蓝点)的区域。

有人可以告诉我该怎么做吗?谢谢!!

在此处输入图像描述

更新

JSON文件中有一个名为ID的字段,我手动发现NJ是34,NY是36,CT是9。有没有办法过滤这些ID?这将完成工作!

0 投票
1 回答
1006 浏览

python - 在 Altair 中设置 count() 截止值?

这是一个使用 altair 的简单绘图:

我正在count()为每个字母绘制:so a:2、、b:3c:1

在此处输入图像描述

我如何过滤数据,例如,count()必须> = 2,所以只有ab被绘制?我知道如何pandas使用altair.