8

ここで利用可能な形状ファイルを考えると、以下の指定された郡のセットをカスタムカラーでプロットしたいと思います。ウェイン郡とウォシュテノー郡は「青」、その他は「灰色」です。

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

最初にデータフレームの列として色を割り当ててから、何らかの方法でプロットするときにそれらを呼び出したいと思います。これは可能ですか?

アップデート

リストを渡して、散布図の場合と同じようにループでプロットしようとしましたが、すべてを 1 つのプロットにまとめるのではなく、個別の郡マップをプロットするだけなので、同じようには機能しないようです。

これが私が試したことです:

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

前もって感謝します!

4

1 に答える 1

9

Geopandasは、 のデータに従ってマップに色を付けたいと考えていますgeopandas dataframe。したがって、使用できる最も簡単な配色スキームは、データフレームに列を追加し'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 ドキュメントのこのページもご覧ください。

于 2016-08-11T00:07:04.177 に答える