簡體   English   中英

Altair choropleth map 可視化問題

[英]Altair choropleth map visualization issue

我是初學者,所以這可能是顯而易見的。 我嘗試將本指南與 Python 的 Altair package 結合使用來制作等值線 map。所有代碼運行良好,除了最后一個代碼。 基本上,標題為“choro”的 Altair 圖表應該用顏色“填充”我的 map 上的行政區划,但沒有做任何事情。 生成的 map 如果我將它覆蓋在背景上,則與背景本身相同,只是邊框筆觸略有不同。 我不需要標簽,所以我省略了那個。

准確地說,這是我的代碼:

choro = alt.Chart(choro_data).mark_geoshape(
        fill='lightgray',
        stroke='black'
    ).encode(
        alt.Color('properties.unemp', 
                  type='quantitative', 
                  scale=alt.Scale(scheme='bluegreen'),
                  title = "Unemployment by county")
    ).project(
        type= 'mercator',
        scale= 2000,                          
        center= [20,47],                     
        clipExtent= [[0, 0], [400, 300]]
    ) 

如果相關,'unemp' 的類型是浮點數。

問題是什么? 指南是否過時? 我錯過了一些明顯的東西嗎?

  • 使用了加州幾何和失業數據
  • 我在altair上發現了兩個問題
    1. 跳過fill='lightgray'
    2. 每當傳遞type以外的任何內容時,投影都會產生錯誤
import geopandas as gpd
import pandas as pd
import requests
import altair as alt

# california counties
gdf = gpd.read_file(
    "https://raw.githubusercontent.com/codeforgermany/click_that_hood/main/public/data/california-counties.geojson"
)
# california un employment
df = pd.json_normalize(
    requests.get("https://data.edd.ca.gov/resource/e6gw-gvii.json").json()
).loc[lambda d: d["area_type"].eq("County") & d["seasonally_adjusted_y_n"].eq("N")]
# make names consistent between geometry and unemployment data
df["name"] = df["area_name"].str.split(" ").apply(lambda l: " ".join(l[0:-1]))
df["unemp"] = pd.to_numeric(df["unemployment_rate"])
# join geometry and unemployment data
gdf = gdf.merge(df, on="name")

geojson = gdf.loc[:, ["name", "unemp", "geometry"]].__geo_interface__
choro_data = alt.Data(values=geojson["features"])
choro = (
    alt.Chart(choro_data)
    .mark_geoshape(stroke="black")
    .encode(
        alt.Color(
            "properties.unemp",
            type="quantitative",
            scale=alt.Scale(scheme="bluegreen"),
            title="Unemployment by county",
        )
    )
    .project(
        type="mercator",
        # scale=2000, center=[20, 47], clipExtent=[[0, 0], [400, 300]]
    )
)

choro

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM