2016-12-02 12 views
0

ベースマップとパンダを使用してCCG(NHS Clinical Commissioning Groups)全体の処方率をプロットするために、choroplethマップを作成しようとしています。私はhttp://geoportal.statistics.gov.uk/datasets/1bc1e6a77cdd4b3a9a0458b64af1ade4_1からCCGエリア境界を提供するシェイプファイルをダウンロードしています。しかし、私が直面している最初の問題はシェイプファイルの読み込みと関係しています。 次のエラーが生じている:ベースマップとパンダを使用したchoroplethマップの作成

raise IOError('cannot locate %s.shp'%shapefile) 

これは、これまでの私のコードです...

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.cm 

from mpl_toolkits.basemap import Basemap 
from matplotlib.patches import Polygon 
from matplotlib.collections import PatchCollection 
from matplotlib.colors import Normalize 

fig, ax = plt.subplots(figsize=(10,20)) 

m = Basemap(resolution='c', # c, l, i, h, f or None 
projection='merc', 
lat_0=54.5, lon_0=-4.36, 
llcrnrlon=-6., llcrnrlat= 49.5, urcrnrlon=2., urcrnrlat=55.2) 

m.drawmapboundary(fill_color='#46bcec') 
m.fillcontinents(color='#f2f2f2',lake_color='#46bcec') 
m.drawcoastlines() 

m.readshapefile('/Volumes/Clinical_Commissioning_Groups_April_2016_Full_Extent_Boundaries_in_England', 'areas', drawbounds =True) 
m.areas 

df_poly = pd.DataFrame({'shapes': [Polygon(np.array(shape), True) for shape in m.areas],'area': [area['ccg16cd'] for area in m.areas_info]}) 

rates=pd.read_csv('Volumes/TOSHIBA EXT/Basemap rates.csv', delimiter=",", usecols=[0,6]) 
rates.columns = ['ccg16cd','MEAN YEARLY PRESCRIPTION RATE'] 
frame = df_poly.merge(rates, on='ccg16cd', how='left') 

cmap = plt.get_cmap('Oranges') 
pc = PatchCollection(df_poly.shapes, zorder=2) 
norm = Normalize() 

pc.set_facecolor(cmap(norm(df_poly['count'].fillna(0).values))) 
ax.add_collection(pc) 

mapper = matplotlib.cm.ScalarMappable(norm=norm, cmap=cmap) 

mapper.set_array(df_poly['count']) 
plt.colorbar(mapper, shrink=0.4) 

m 

は、私はこのchoroplethマップを達成することができますどのようになどの任意のポインタをお願い申し上げます - 間違って何が起こっているかで始まりますシェイプファイルを読み込む際に。

答えて

0

シェープファイルを読み込むgeopandasを使用してみてください:

インポートGP

としてgeopandas shape_file = gp.read_file( 'FileName.shp')

また、シェープファイルへのパスを確認正しい。

+0

geopandas –

+0

という名前のモジュールがありません。次のコマンドを使用してパッケージをインストールする必要があります。pip install geopandas –

+0

http://geopandas.org/install.html –

関連する問題