【发布时间】:2022-07-21 18:50:57
【问题描述】:
我想使用altair 创建一个跨越多行且具有交互性的绘图。通过将该区域外的颜色更改为灰色,突出显示绘图的子区域正确突出显示所有行中的该区域。这是我的 MWE 以及生成的交互式绘图的屏幕截图:
import altair as alt
from vega_datasets import data
source = data.stocks()
brush = alt.selection_interval(encodings=["x"], mark=alt.BrushConfig(fill="green"))
histogram = (
alt.Chart(source)
.mark_bar()
.encode(
x="date:T",
y="price:Q",
color=alt.condition(brush, "symbol:N", alt.value("gray"), legend=None),
)
)
overlay = (
alt.Chart(source)
.mark_rect(opacity=0.8)
.encode(
x="date:T",
y="proce:Q",
color=alt.condition(brush, alt.value("green"), alt.value("gray"), legend=None),
)
)
(histogram + overlay).properties(height=50, width=400).facet(
row=alt.Row("symbol:N",)
).transform_filter(alt.datum.symbol != "GOOG").add_selection(brush)
我在第一行中选择了一个范围,并且只有该行具有我尝试添加到每一行的绿色背景(通过overlay)。显然我失败了。有没有办法让所有行都有绿色选择框,不管我从哪一行选择范围?
【问题讨论】:
标签: python data-visualization altair