【问题标题】:Problem plotting geodataframe with Altair使用 Altair 绘制地理数据框时出现问题
【发布时间】:2021-10-08 12:01:20
【问题描述】:

我正在尝试创建以下 GeoJSON 的地图:https://github.com/nychealth/coronavirus-data/blob/master/Geography-resources/UHF_resources/UHF42.geo.json

我用 GeoPandas 加载它,并且可以用 matplotlib 很好地绘制它:

但是当我尝试用 Altair 绘制它时,我得到一个蓝色方块:

我不知道为什么它不起作用。我试过用 Altair 绘制其他 GeoJSON,它们工作正常。我还检查了地理数据框的 crs,它是 WGS 84,这是 Altair 推荐的。

这是我的代码:

import pandas as pd
import geopandas as gpd

gdf = gpd.read_file('https://raw.githubusercontent.com/nychealth/coronavirus-data/master/Geography-resources/UHF_resources/UHF42.geo.json')

print(gdf.crs)

# Matplotlib plot
gdf.plot()

# Altair plot
alt.Chart(gdf).mark_geoshape()

【问题讨论】:

    标签: python geopandas altair


    【解决方案1】:

    我不熟悉在 Altair 中使用地图,但这里有一个 great answer:来自 URL,您需要使用 alt.Data(url,format) 将其转换为数据。

    编辑: 由于您想使用 geopandas 来使用它,我使用来自同一个 github 的数据来可视化 7 天的数据,因为当前的 geopandas 没有要绘制的数据。并将其与“id”相关联。

    import pandas as pd
    import geopandas as gpd
    import altair as alt
    
    gdf = gpd.read_file('https://raw.githubusercontent.com/nychealth/coronavirus-data/master/Geography-resources/UHF_resources/UHF42.geo.json')
    #print(gdf.crs)
    data_url = 'https://raw.githubusercontent.com/nychealth/coronavirus-data/master/latest/now-transmission-by-uhf42.csv'
    
    df =pd.read_csv(data_url)
    df.columns = ['id', 'neighborhood_name', 'case_rate_7day']
    
    url_geojson = 'https://raw.githubusercontent.com/nychealth/coronavirus-data/master/Geography-resources/UHF_resources/UHF42.geo.json'
    data_geojson_remote = alt.Data(url=url_geojson, format=alt.DataFormat(property='features',type='json'))
    
    alt.Chart(data_geojson_remote).mark_geoshape().encode(
        color="case_rate_7day:Q"
    ).transform_lookup(
        lookup='id',
        from_=alt.LookupData(df, 'id', ['case_rate_7day'])
    ).project(
        type='identity', reflectY=True
    )
    

    【讨论】:

    • 这很有用,但我想将数据保存为 Geodataframe,以便使用 Geopandas 进行进一步分析和处理。
    • 如果你的 geopandas 数据包含可视化数据,你可以做同样的事情。您对此还有什么期待?
    • 这很好,但您对 Altair 为何无法正确绘制该地理数据框有任何想法吗?
    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 2021-09-02
    • 2022-01-12
    • 1970-01-01
    • 2021-01-03
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多