Altair 散点图到条形图单个 select 行数据框
Altair scatter plot to bar chart single select row of data frame
Python 中 Altair 可视化库的新手问题。
我有一个 pandas 数据框,所有列都是数字,但一列是字符串标签(见下文)。我正在尝试构建交互式图表,将散点图单个 selection 绑定到条形图。条形图将显示其余数值,X 轴将是列名,Y 轴将是数值。所有示例都与聚合有关。如何在 Altair 中将其可视化?请参阅下面的代表性数据。标签值将用于 select 行。
Label
Score 1
Score 2
Score 3
red
0.22
0.55.
0.44
blue
0.45
0.66.
0.33
green
0.45
0.66.
0.33
black
0.45
0.66.
0.33
我尝试做的类似于以下但没有聚合:
https://altair-viz.github.io/gallery/scatter_with_layered_histogram.html
描述中提到的交互式散点图不清楚你想要显示什么,但我可以回答你关于条形图的问题。
如果您想在图表的 x 轴上显示列名,方法是使用 Fold Transform,它将几列折叠在一起成为一列键和一列值。
对于您的数据,它可能看起来像这样(使用颜色 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)
)
(旁注:在未来,考虑以 executable 代码的形式呈现你的代表性数据,就像我上面使用的 pandas DataFrame,而不是格式化的 table).
Python 中 Altair 可视化库的新手问题。 我有一个 pandas 数据框,所有列都是数字,但一列是字符串标签(见下文)。我正在尝试构建交互式图表,将散点图单个 selection 绑定到条形图。条形图将显示其余数值,X 轴将是列名,Y 轴将是数值。所有示例都与聚合有关。如何在 Altair 中将其可视化?请参阅下面的代表性数据。标签值将用于 select 行。
Label | Score 1 | Score 2 | Score 3 |
---|---|---|---|
red | 0.22 | 0.55. | 0.44 |
blue | 0.45 | 0.66. | 0.33 |
green | 0.45 | 0.66. | 0.33 |
black | 0.45 | 0.66. | 0.33 |
我尝试做的类似于以下但没有聚合: https://altair-viz.github.io/gallery/scatter_with_layered_histogram.html
描述中提到的交互式散点图不清楚你想要显示什么,但我可以回答你关于条形图的问题。
如果您想在图表的 x 轴上显示列名,方法是使用 Fold Transform,它将几列折叠在一起成为一列键和一列值。
对于您的数据,它可能看起来像这样(使用颜色 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)
)
(旁注:在未来,考虑以 executable 代码的形式呈现你的代表性数据,就像我上面使用的 pandas DataFrame,而不是格式化的 table).