使用底图创建地图,填充国家/地区

时间:2017-04-02 11:56:03

标签: python-3.x csv matplotlib-basemap

我目前正在为我的Coding类(我的第一个编码类,那么一个业余爱好者)的最后一个项目工作。

我的想法是使用代码在世界上的每个报纸上搜索标题中的特定单词(使用bs4),然后根据每个国家/地区的报纸数量获取按国家/地区平均提及的字典。之后,这就是我被卡住的部分,我想把它放在地图上。

整个程序已经正常运行,直到我的CSV部分具有以下形式:

'Country','Average'
'Afghanistan',10
'Albania',5
'Algeria',0
'Andorra',2
'Antigua and Barbuda',7
'Argentina',0
'Armenia',4

现在,我想创建一个世界地图,其中国家的整个多边形的数字越高,越红(或任何其他颜色)。到目前为止,我已经发现许多代码可以很好地在空间中放置点,但是我没有找到一个“附加”上面提供的CSV数据然后相应地填充每个国家的代码。以下是当前创建worldmap的代码部分:

# Now we proceed with the creation of the map

fig, ax = plt.subplots(figsize=(15,10))     # We define the size of the map
m = Basemap(resolution='c', # c, l, i, h, f or None
        projection='merc', # Mercator projection
        lat_0=24.20, lon_0=-6.67,   # The center of the mas, so that the whole world is shown without splitting Asia
        llcrnrlon=-180, llcrnrlat= -85,urcrnrlon=180, urcrnrlat=85)     # The coordinates of the whole world

m.drawmapboundary(fill_color='#46bcec')     # We choose a color for the boundary of the map
m.fillcontinents(color='#f2f2f2',lake_color='#46bcec')      # We choose a color for the land and one for the lakes
m.drawcoastlines()      # We choose to draw the lines of the map
m.readshapefile('Final project\\vincent_map_data-master\\ne_110m_admin_0_countries\\ne_110m_admin_0_countries', 'areas')        # We import the shape file of the whole world

df_poly = pd.DataFrame({            # We define the polygon structure
    'shapes': [Polygon(np.array(shape), True) for shape in m.areas],    
    'area': [area['name'] for area in m.areas_info]     
})

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

# We show the map
plt.show(m)

我打开了各国的形状文件,识别国家的方式是变量“主权”。我的代码中可能有一些非感性的东西,因为我从很多地方提取了东西。对不起。

如果有人可以帮助我,我真的很感激。 感谢

0 个答案:

没有答案