我正在下载数据集从两个不同的来源为英国地区。我正在使用牛郎星代码来显示ChoroplethMap。但这是我得到的两个数据集使用以下代码:
_map = alt.Chart(geo_uk, title='UK Map').mark_geoshape().encode().properties(width=500,height=300);
Link to used data source (GeoJson file)
b1uwtaje1#
我不经常使用altair,所以我不知道我的答案是否令你满意。我用给定geojson文件中的信息创建了一个Map。我的答案是基于这个答案的。如果这个Map不是你想要的,你可能需要在世界大地测量系统中转换它。
import altair as alt import json file = './data/Local_Authority_Districts__April_2019__UK_BGC_v2.geojson' with open(file) as f: data_json = json.load(f) geo_uk = alt.Data(values=data_json, format=alt.DataFormat(property='features',type='json')) _map = alt.Chart(geo_uk, title='UK Map').mark_geoshape( ).encode( color="properties.LAD19NM:N" ).project( type='identity', reflectY=True ).properties(width=800,height=600) _map
qyzbxkaa2#
要在Python Altair中创建一个地理Map,需要一个topoJSON文件来指定Map上区域的地理边界,以及一个包含每个区域的值的数据集。获得topoJSON文件后,可以使用topo_feature()函数将其加载到Altair中。您可以使用以下代码:
topo_feature()
import pandas as pd import altair as alt df = # your DataFrame url = "https://raw.githubusercontent.com/deldersveld/topojson/master/continents/europe.json" data_map = alt.topo_feature(url, "continent_Europe_subunits") alt.Chart(data_map).mark_geoshape().encode( tooltip='properties.geounit:N', color=alt.Color('color:Q') ).project('mercator').properties( width=500, height=300 ).transform_lookup( lookup='properties.geounit', from_=alt.LookupData(df, 'Country', ['Country', 'color']) )
使用transform_lookup()函数合并data_map数据集和数据集。您可以在this article中找到更多详细信息。
transform_lookup()
data_map
2条答案
按热度按时间b1uwtaje1#
我不经常使用altair,所以我不知道我的答案是否令你满意。我用给定geojson文件中的信息创建了一个Map。我的答案是基于这个答案的。如果这个Map不是你想要的,你可能需要在世界大地测量系统中转换它。
qyzbxkaa2#
要在Python Altair中创建一个地理Map,需要一个topoJSON文件来指定Map上区域的地理边界,以及一个包含每个区域的值的数据集。
获得topoJSON文件后,可以使用
topo_feature()
函数将其加载到Altair中。您可以使用以下代码:
使用
transform_lookup()
函数合并data_map
数据集和数据集。您可以在this article中找到更多详细信息。