python - Altair散点图到条形图单选数据框行
问题描述
Python 中 Altair 可视化库的新手问题。我有一个熊猫数据框,所有列都是数字,但一列是字符串标签(见下文)。我正在尝试构建交互式图表,将散点图单选绑定到条形图。条形图将显示其余数值,X 轴将是列名,Y 轴将是数值。所有示例都与聚合有关。如何在 Altair 中将其可视化?请参阅下面的代表性数据。标签值将用于选择行。
标签 | 得分 1 | 得分 2 | 得分 3 |
---|---|---|---|
红色的 | 0.22 | 0.55。 | 0.44 |
蓝色的 | 0.45 | 0.66。 | 0.33 |
绿色 | 0.45 | 0.66。 | 0.33 |
黑色的 | 0.45 | 0.66。 | 0.33 |
我尝试做的类似于以下但没有聚合: https ://altair-viz.github.io/gallery/scatter_with_layered_histogram.html
解决方案
目前尚不清楚您希望在描述中提到的交互式散点图中显示什么,但我可以回答您关于条形图的问题。
如果您想在图表的 x 轴上显示列名,方法是使用折叠变换,它将几列折叠成一列键和一列值。
对于您的数据,它可能看起来像这样(使用颜色scale=None
以便使用数据中的实际颜色):
import altair as alt
import pandas as pd
df = pd.DataFrame({
'Label': ['red', 'blue', 'green', 'black'],
'Score 1': [0.22, 0.45, 0.45, 0.45],
'Score 2': [0.55, 0.66, 0.66, 0.66],
'Score 3': [0.44, 0.33, 0.33, 0.33],
})
alt.Chart(df).transform_fold(
['Score 1', 'Score 2', 'Score 3'], as_=['column', 'value']
).mark_bar().encode(
x='column:N',
y='value:Q',
color=alt.Color('Label:N', scale=None)
)
(旁注:将来,考虑以可执行代码的形式(例如我上面使用的 pandas DataFrame,而不是格式化表格的形式)呈现您的代表性数据。)
推荐阅读
- google-docs-api - 使用 user.birthday.read 范围获取生日信息
- python - 我编写了一个程序,用字母顺序替换输入字符串中的所有字符,但我不明白为什么它没有按预期工作
- android - 强制数据绑定以获取所有中间媒体 livedata / mediatorlivedata 更改
- javascript - 是的,'notRequired' 方法似乎在我的表单验证中不起作用
- amazon-web-services - 在 Amazon S3 中设置每个客户端的存储桶的最简单方法
- django - 如何配置 gunicorn 服务文件
- python - 在类方法签名上使用 Union 键入提示问题
- python - Pytest:使用参数创建增量夹具值
- reactjs - web.config 类似于 react 应用程序的设置文件
- vue.js - 使用 V-If 进行动态渲染