2016-08-10 3 views
2

Приведенный файл формы here: Я хотел бы построить указанный набор округов ниже с пользовательскими цветами; «синий» для графств Уэйн и Уоттенау и «серый» для других.GeoPandas, MatPlotLib Plot Custom Colors

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]) 

Спасибо заранее!

ответ

3

Geopandas хочет покрасить вашу карту в соответствии с данными вашего geopandasdataframe. Таким образом, простейшая схема раскраски, с которой вы могли бы пойти, - добавить столбец '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) 

enter image description here

Возможно, это не самое элегантное решение, но это должно, по крайней мере объяснить понятие, как цветовые карты функции в geopandas и вы получите график, который вы ищете. Также проверьте эту страницу geopandas docs за немного больше информации о раскраске карты.

+0

@Ianery большое спасибо! Это именно то, что мне нужно. –

+0

@Ianery: Связанный с этим вопрос: http://stackoverflow.com/questions/38899190/geopandas-label-polygons –

+0

@ DanceParty2 рад, что это сработало для вас! – lanery