在 python 中制作一组简单的等值线图——颜色未显示

Making a simple set of chloropleth maps in python -- colors not showing up

这是我要绘制的 shapefile:

link to a zipped shapefile

假设我要映射列 liab。我可以看到它有一个值分布:

import geopandas as gpd
import matplotlib.pyplot as plt
foo = gpd.read_file("foo.shp")
plt.hist(foo.liab)

但是当我尝试绘制它们时,我看不到任何颜色:

foo.plot(column = "liab", legend = True)

这是怎么回事?

最终,我想制作一个地图网格,类似于 facet_wrap in ggplot2 in R。是否有 python 模拟?

我不能告诉你原因,但你需要为颜色图指定 vmin|max。我认为 geopandas 会自动执行此操作,并且它会为一个小示例执行此操作,但不会为您的 shapefile 执行此操作:

import geopandas

ax = (
    geopandas.read_file('/mnt/c/users/phobson/downloads/foo/foo.shp')
        .to_crs({'init': 'epsg:3083'})
        .plot(column="liab", legend=True, figsize=(10, 4),
              vmin=0.0, vmax=1)  # <-- magic is here
)