![](/img/trans.png)
[英]matplotlib geopandas plot chloropleth with set bins for colorscheme
[英]GeoPandas, MatPlotLib Plot Custom Colors
鉴于此处提供的形状文件:我想用自定义颜色绘制下面指定的县集; Wayne和Washtenaw县的“蓝色”和其他县的“灰色”。
import geopandas as gpd
import matplotlib.pyplot as plt
%matplotlib inline
shpfile=<Path to unzipped .shp file referenced and linked above>
c=gpd.read_file(shpfile)
c=c.loc[c['GEOID'].isin(['26161','26093','26049','26091','26075','26125','26163','26099','26115','26065'])]
c.plot()
我更喜欢首先将颜色分配为数据框中的列,然后在以某种方式绘制时调用它们。 这可能吗?
UPDATE
我已经尝试传递一个列表并在循环中绘图,就像我用散点图一样,但它似乎没有相同的方式,因为它只是在一个图中绘制单独的县地图而不是所有这些。
这是我试过的:
color=['b','b','b','b','b','c','c','c','c','c']
for i in range(10):
c.iloc[i:i+1].plot(c='white',linewidth=.5,color=color[i])
提前致谢!
Geopandas
希望根据您的geopandas
dataframe
geopandas
dataframe
为地图geopandas
。 因此,您可以使用的最简单的着色方案是向数据框添加列'color'
,并根据您希望县的颜色填充一些值。
import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
shpfile = 'cb_2015_us_county_20m.shp'
c = gpd.read_file(shpfile)
c = c.loc[c['GEOID'].isin(['26161','26093','26049','26091','26075',
'26125','26163','26099','26115','26065'])]
c['color'] = np.zeros(len(c))
# 23 is index for Washtenaw county and 1992 is index for Wayne county
c.ix[23, 'color'] = 1.0
c.ix[1992, 'color'] = 1.0
# create simple linear colormap that maps grey to blue
cmap = LinearSegmentedColormap.from_list(
'mycmap', [(0, 'grey'), (1, 'blue')])
c.plot(column='color', cmap=cmap)
也许这不是最优雅的解决方案,但这至少应该解释彩色地图在地缘广场中如何运作的概念,并为您提供您正在寻找的情节。 还检查了这个页面geopandas文档的地图着色多一点信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.