我目前正在为我的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)
我打开了各国的形状文件,识别国家的方式是变量“主权”。我的代码中可能有一些非感性的东西,因为我从很多地方提取了东西。对不起。
如果有人可以帮助我,我真的很感激。 感谢