python - Python:Altair 条件颜色不透明度
问题描述
在 Altair 条件下,我想指定次要条件颜色的不透明度。我在散点图中的数据相当密集,所以我希望未选中的点消失(或多或少)。
使用此处的示例,我想要以下代码:
selection = alt.selection_multi(fields=['Origin'])
color = alt.condition(selection,
alt.Color('Origin:N', legend=None),
alt.value('lightgray') # WANT THIS TO BE %50 OPACITY
)
scatter = alt.Chart(cars).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color=color,
tooltip='Name:N'
)
legend = alt.Chart(cars).mark_point().encode(
y=alt.Y('Origin:N', axis=alt.Axis(orient='right')),
color=color
).add_selection(
selection
)
scatter | legend
使颜色条件如下:
color = alt.condition(selection,
alt.Color('Origin:N', legend=None),
alt.Color(value='lightgray', opacity=0.5)
)
但是我似乎无法弄清楚,并且似乎没有任何在线解决方案。
谢谢!
解决方案
不透明度是一个单独的通道,因此您可以对颜色和不透明度设置条件:
color = alt.condition(selection,
alt.Color('Origin:N', legend=None),
alt.value('lightgray'))
opacity = alt.condition(selection, alt.value(1.0), alt.value(0.5))
scatter = alt.Chart(cars).mark_point().encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color=color,
opacity=opacity,
tooltip='Name:N'
)
推荐阅读
- visual-c++ - rust 编译时 1 字节的结构成员对齐 (rustflags)
- javascript - 使用 For 循环在数组中递归搜索
- mysql - 如何在父查询案例语句中使用子查询的结果
- java - Thymeleaf 无法识别服务的属性
- xml - XPath 谓词仅使用节点集中的第一个节点进行匹配
- javascript - React Native:尝试通过道具传递参考函数
- matplotlib - matplotlib 图形屏幕菜单改变了吗?
- node.js - Node.js 安装错误“仅在 windows 8.1、windows server 2012 R2 或更高版本上支持该应用程序”
- git - 为什么 github/bitbucket 等默认需要生成的密钥作为“密码”来克隆私有仓库?而不是密码+ 2FA?
- questdb - 运行 QuestDB 二进制文件时如何更改 webconsole 端口?