如何从给定的 table 创建下拉菜单
How to create a dropdown from the given table
我有以下内容table:(只给出了很多行的片段)
|name_id | house | school | duration |
|1 |red | abc | 20 |
|2 |yello | dps | 30 |
|3 |blue | gdf | 40 |
|4 |pink | abc | 20 |
|5 |red | dps | 10 |
|6 |blue | gdf | 5 |
并且我想应用这样的可视化:创建了 house 和 school 的两个下拉菜单。
为了实现视觉效果,我使用了以下内容:
- 我将数据作为 pandas 数据框。
- 我使用altair代码如下:
import altair as alt
input_dropdown1 = alt.binding_select(options=['abc','dps','gdf'])
input_dropdown2 = alt.binding_select(options=['red','yello','blue','pink'])
selection1 = alt.selection_single(fields=['house'], bind=input_dropdown1, name='belonging ')
selection2 = alt.selection_single(fields=['school'], bind=input_dropdown2, name='origin ')
alt.Chart(df1).mark_point().encode(
x='name_id:Q',
y='duration:Q',
color='house'
).add_selection(
selection1,
selection2
)
但是,代码未正确呈现。
当我尝试只有一个下拉菜单时 - 没有过滤发生。
我是第一次使用 altair。
这里的想法恰恰是绘制 name_id 与持续时间的关系图,并使用过滤器更仔细地查看每个房屋和学校的关系图。
如果有人帮助我,我会很高兴。
试试这个
import altair as alt
input_dropdown1 = alt.binding_select(options=['abc','dps','gdf'])
input_dropdown2 = alt.binding_select(options=['red','yello','blue','pink'])
selection1 = alt.selection_single(fields=['house'], bind=input_dropdown1, name='belonging ')
selection2 = alt.selection_single(fields=['school'], bind=input_dropdown2, name='origin ')
alt.Chart(df1).mark_point().encode(
x='name_id:Q',
y='duration:Q',
color='house',
##### added the opacity ,here
opacity=alt.condition(
selection1 & selection2,
alt.value(1),
alt.value(0.1)
)).add_selection(
selection1,
selection2
)
我有以下内容table:(只给出了很多行的片段)
|name_id | house | school | duration |
|1 |red | abc | 20 |
|2 |yello | dps | 30 |
|3 |blue | gdf | 40 |
|4 |pink | abc | 20 |
|5 |red | dps | 10 |
|6 |blue | gdf | 5 |
并且我想应用这样的可视化:创建了 house 和 school 的两个下拉菜单。
为了实现视觉效果,我使用了以下内容:
- 我将数据作为 pandas 数据框。
- 我使用altair代码如下:
import altair as alt
input_dropdown1 = alt.binding_select(options=['abc','dps','gdf'])
input_dropdown2 = alt.binding_select(options=['red','yello','blue','pink'])
selection1 = alt.selection_single(fields=['house'], bind=input_dropdown1, name='belonging ')
selection2 = alt.selection_single(fields=['school'], bind=input_dropdown2, name='origin ')
alt.Chart(df1).mark_point().encode(
x='name_id:Q',
y='duration:Q',
color='house'
).add_selection(
selection1,
selection2
)
但是,代码未正确呈现。
当我尝试只有一个下拉菜单时 - 没有过滤发生。
我是第一次使用 altair。
这里的想法恰恰是绘制 name_id 与持续时间的关系图,并使用过滤器更仔细地查看每个房屋和学校的关系图。
如果有人帮助我,我会很高兴。
试试这个
import altair as alt
input_dropdown1 = alt.binding_select(options=['abc','dps','gdf'])
input_dropdown2 = alt.binding_select(options=['red','yello','blue','pink'])
selection1 = alt.selection_single(fields=['house'], bind=input_dropdown1, name='belonging ')
selection2 = alt.selection_single(fields=['school'], bind=input_dropdown2, name='origin ')
alt.Chart(df1).mark_point().encode(
x='name_id:Q',
y='duration:Q',
color='house',
##### added the opacity ,here
opacity=alt.condition(
selection1 & selection2,
alt.value(1),
alt.value(0.1)
)).add_selection(
selection1,
selection2
)