【发布时间】:2021-01-01 09:16:07
【问题描述】:
对于一个可视化项目,我有以下(示例)数据集:
country|continent|rank|house|total|year
france|Eu |a |top |23 |2010
france|Eu |b |top |21 |2010
france|Eu |b |mid |19 |2012
italy |Eu |b |top |25 |2010
italy |Eu |a |top |26 |2012
china |asia |b |mid |35 |2010
korea |asia |a |mid |29 |2010
china |asia |a |top |40 |2012
korea |asia |b |top |33 |2012
kenya |africa |b |mid |20 |2010
kenya |africa |c |mid |18 |2012
我想使用 altair 在世界地图上绘制信息以获得如下信息:
(注意:我只需要一张世界地图 - 不是图片中的两张)
我的意图是 - 将总列作为红点(大小根据数字),悬停在显示(总和)总数的值。而在侧面 - 最好是右侧或顶部,我想创建一个选择器(下拉菜单),用于具有交互选项的年份、排名和房屋 -
例如。在法国 - 如果我选择 house - top,总显示应该是 44,而选择 house-mid,总显示应该是 19。 最后一步 - 我想要大陆选择器下拉菜单,这样如果选择了一个大陆,该部分就会放大。
我最近开始使用 altair,我知道如何构建单独的组件,例如下拉或连接两个图表等。至于世界地图 -
import altair as alt
from vega_datasets import data
# Data generators for the background
sphere = alt.sphere()
graticule = alt.graticule()
# Source of land data
source = alt.topo_feature(data.world_110m.url, 'countries')
# Layering and configuring the components
alt.layer(
alt.Chart(sphere).mark_geoshape(fill='lightblue'),
alt.Chart(graticule).mark_geoshape(stroke='white', strokeWidth=0.5),
alt.Chart(source).mark_geoshape(fill='ForestGreen', stroke='black')
).project(
'naturalEarth1'
).properties(width=600, height=400).configure_view(stroke=None)
它是 altair 文档中的代码示例,但我真的不知道如何实现我的目标。谁能帮帮我。
【问题讨论】:
标签: javascript python data-visualization altair vega-lite