在 python 中制作一组简单的等值线图——颜色未显示
Making a simple set of chloropleth maps in python -- colors not showing up
这是我要绘制的 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
)
这是我要绘制的 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
)