如何在 Altair 的 mark_circle() 中匹配 2 个不同变量的比例?
How can I match the scale for 2 different variables in mark_circle() in Altair?
我正在使用 Altair,由于变量的大小,我无法重叠 2 个 mark_circle() 图表。我想叠加 2 个圆圈,这样我就可以将一个变量的大小与另一个变量的大小进行比较。
问题是一个变量的数量级为数百万,第二个变量的范围为 0 到 100,当它们重叠时,由于与数百万相比的大小,第二个变量未显示。
我试过玩 scale=alt.Scale(range=(xx,xx)) 但我不能让它工作,所以不确定这是否可能或者我在哪里迷路了?
这是我的代码
pop = alt.Chart(df).mark_circle(color='blue').encode(
y = alt.Y('Top_City', sort=alt.SortField(field="Rank_mean", order='ascending')),
size = alt.Size('Pop_mean')
)
pop
fa = alt.Chart(df).mark_circle(color='yellow').encode(
y = alt.Y('Top_City', sort=alt.SortField(field="Rank_mean", order='ascending')),
size = alt.Size('FARS_PerCapita')
)
fa
理想情况下,我希望做的时候有像最后一张图片那样的东西
pop + fa
看了半天终于解决了我的问题
alt.layer(pop, fa).resolve_scale(size='independent')
我正在使用 Altair,由于变量的大小,我无法重叠 2 个 mark_circle() 图表。我想叠加 2 个圆圈,这样我就可以将一个变量的大小与另一个变量的大小进行比较。
问题是一个变量的数量级为数百万,第二个变量的范围为 0 到 100,当它们重叠时,由于与数百万相比的大小,第二个变量未显示。
我试过玩 scale=alt.Scale(range=(xx,xx)) 但我不能让它工作,所以不确定这是否可能或者我在哪里迷路了?
这是我的代码
pop = alt.Chart(df).mark_circle(color='blue').encode(
y = alt.Y('Top_City', sort=alt.SortField(field="Rank_mean", order='ascending')),
size = alt.Size('Pop_mean')
)
pop
fa = alt.Chart(df).mark_circle(color='yellow').encode(
y = alt.Y('Top_City', sort=alt.SortField(field="Rank_mean", order='ascending')),
size = alt.Size('FARS_PerCapita')
)
fa
理想情况下,我希望做的时候有像最后一张图片那样的东西
pop + fa
看了半天终于解决了我的问题
alt.layer(pop, fa).resolve_scale(size='independent')