Basemap是一个强大的绘制地图工具包,配合matplotlib,可以绘制一些漂亮的地图,通过网上搜集的数据就可以绘制关于人口分布、天气等不同因素在不同地域的分布情况。

本人是在win10环境下使用的,安装basemap在http://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap这个网站下载.whl 格式的文件安装,我几乎所有的python package都是在这里下载安装的,使用.whl 文件安装可以避免一些直接用pip 命令安装产生的莫名其妙的错误,建议顺便把gdal安装了(同样在刚才那个网站查找gdal),因为官网的教程里有些是需要import osgeo ,要导入这个模块就需要安装gdal。

参考教程:http://basemaptutorial.readthedocs.io/en/latest/index.html

程序使用的美国人口及地理数据(含经纬度):https://github.com/plotly/datasets/blob/master/2014_us_cities.csv
在excel打开预览如下:

由于是csv文件,可以用pandas模块的read_csv(filename) 函数方便读取,具体程序如下:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import cm# 绘制基础地图,选择绘制的区域,因为是绘制美国地图,故选取如下经纬度,lat_0和lon_0是地图中心的维度和经度map = Basemap(projection='stere',lat_0=90,lon_0=-105,\llcrnrlat=23.41 ,urcrnrlat=45.44,\llcrnrlon=-118.67,urcrnrlon=-64.52,\rsphere=6371200.,resolution='l',area_thresh=10000)
# map = Basemap(projection='stere',
#               lat_0=0, lon_0=280,
#               llcrnrlon=73.33,
#               llcrnrlat=3.51,
#               urcrnrlon=112.16,
#               urcrnrlat=53.123)map.drawmapboundary()   # 绘制边界
#map.fillcontinents()   # 填充大陆,发现填充之后无法显示散点图,应该是被覆盖了
map.drawstates()        # 绘制州
map.drawcoastlines()    # 绘制海岸线
map.drawcountries()     # 绘制国家
map.drawcounties()      # 绘制县parallels = np.arange(0.,90,10.)
map.drawparallels(parallels,labels=[1,0,0,0],fontsize=10) # 绘制纬线meridians = np.arange(-110.,-60.,10.)
map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10) # 绘制经线posi=pd.read_csv("D:\\Files\\python\\2014_us_cities.csv") # 读取数据## 原始数据有3228组数据,我只选择了180个城市的数据
lat = np.array(posi["lat"][0:180])                        # 获取维度之维度值
lon = np.array(posi["lon"][0:180])                        # 获取经度值
pop = np.array(posi["pop"][0:180],dtype=float)    # 获取人口数,转化为numpy浮点型size=(pop/np.max(pop))*1000     # 绘制散点图时图形的大小,如果之前pop不转换为浮点型会没有大小不一的效果
x,y = map(lon,lat)# plt.text(x, y, 'Lagos',fontsize=12,fontweight='bold',
#                     ha='left',va='bottom',color='k')
#
#
# x, y = map(lon[0], lat[0])
#
# plt.text(x, y, 'Barcelona',fontsize=12,fontweight='bold',
#                     ha='left',va='center',color='k',
#                     bbox=dict(facecolor='b', alpha=0.2))
#                     # plt.scatter(x,y,s=size,cmap=cm.hsv,edgecolors=None,facecolors='c')# plt.scatter(x,y,s=size,cmap=cm.hsv) # 使用matplotlib的散点图绘制函数
map.scatter(x,y,s=size)     # 也可以使用Basemap的methord本身的scatter
plt.title('Population distribution in America')
plt.show()

最终效果:

由图可以直观看出纽约、旧金山、芝加哥、华盛顿是美国人口数量最多的城市。

Python/Basemap绘制美国人口分布示意图相关推荐

  1. python采用Basemap绘制完美中国地图(包括绘制边界框,随机点等)

    python采用Basemap绘制完美中国地图(包括绘制边界框,随机点等) 1. 效果图 2. 原理 2.1 依赖模块及安装 2.2 工程目录 2.3 依赖文件latlng.txt 经纬度 3 源码 ...

  2. python采用Basemap绘制完美中国地图

    python采用Basemap绘制完美中国地图 摘要 Basemap的安装 下载Basemap安装文件 安装 Pyproj& Basemap Basemap的Helloword 使用Shape ...

  3. Python之使用Basemap绘制中国地图

    目录 1.下载Basemap 2.安装Basemap 3.参数说明 4.地图包下载及导入 5.颜色填充 1.下载Basemap 本人电脑win7,64位操作系统,使用Jupyter 和 Python3 ...

  4. Basemap绘制地图

    文章转自:http://blog.csdn.net/ouening/article/details/55227364 使用folium实现中国地图绘制,文章链接: python/folium绘制中国人 ...

  5. Basemap绘制中国地图

    2022.06.02更新 CHN_adm_shp.zip 网盘下载链接: 链接:https://pan.baidu.com/s/11igf-bfDLuolI5HzEykzMw 提取码:oas6 201 ...

  6. 美国网红python图片_美国失业人数突破2200万!这个动态图我用Python画出来了!...

    目前,我国新冠疫情已经大幅度好转,各省市在3到4月份已经开始复产复工,连受灾最严重的武汉也解封了,全国的情况逐渐步入正轨. 但同时全球疫情十分严峻, 根据美国约翰斯.霍普金斯大学统计的数据显示,截至 ...

  7. 第4章【思考与练习2】数据文件high-speed rail.csv存放着世界各国高速铁路的情况。对世界各国高铁的数据进行绘图分析。使用Basemap绘制地图及使用Pyecharts绘制地图。

    目录 P84思考与练习2 方法一:使用Basemap绘制地图 方法二:使用Pyecharts绘制地图 P84思考与练习2 1.叙述各类图形的特点.适合展示的数据特性,以及在数据探索阶段的用途. 函数绘 ...

  8. 13行Python代码画美国疫情地图!美国现在可怕哇!

    截至3月28日,美国累计新冠肺炎确诊病例已经超过12万例,累计死亡病例超两千例.美国政府已宣布17个州和地区为应对新冠肺炎疫情"灾难状态".美国疾控中心28日还对纽约州等疫情较严重 ...

  9. 13行Python代码画美国疫情地图

    截至4月,美国累计新冠肺炎确诊病例已经超过12万例,累计死亡病例超两千例.美国政府已宣布17个州和地区为应对新冠肺炎疫情"灾难状态".美国疾控中心28日还对纽约州等疫情较严重的三州 ...

  10. R语言绘制美国疫情地图(可交互式)

    前两天用python的plotly画了一个疫情图,发现这个挺简单的,但是当我用R画的时候就有点陌生了,毕竟才学没多久...一开始我尝试用R中的ggplot2包和maps包绘制美国疫情地图,但是发现它的 ...

最新文章

  1. [云炬创业管理笔记]第三章测试4
  2. byteofpython.info_byteofpython学习笔记(2)
  3. java一个接口可以继承另外一个接口吗
  4. Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决
  5. sort降序shell_排序之希尔排序(shell sort)
  6. python高手能做什么_python高手们、能不能给新手写点心得,迷茫过、好方法、过渡期等等...
  7. 从skyeye学习arm(开篇)
  8. 渗透测试实践(工具使用总结)
  9. Sklearn——用Sklearn实现K近邻分类(KNN)
  10. 如何复制百度文库的内容
  11. 软件开发模式(瀑布、原型、增量、螺旋、敏捷开发)
  12. wpa_supplicant交叉编译
  13. UTC时间和CST时间
  14. 汉字转拼音 关于佛字转成了fu
  15. C++游戏game | 井字棋游戏坤坤版(配资源+视频)【赋源码,双人对战】
  16. 《轩辕剑4》最新秘籍
  17. R语言学习-基础篇1
  18. 转载:群联MPALL(Rel) 7F V5.03.0A-DL07量产工具 PS2251-07(PS2307)
  19. 有什么数据恢复软件好?
  20. 回顾丨李开复哥大毕业演讲:工程师的AI银河系漫游指南

热门文章

  1. diskpart命令
  2. Python 自除数
  3. JavaWeb下载文件时文件名乱码
  4. kaggle猫狗大战数据集集(百度云)
  5. 记录一下Alphapose安装过程
  6. 国家开放大学专科计算机应用实训项目,国家开放大学电大专科《微机系统与维护》网络课实训1实训3作业及答案.docx...
  7. 淘宝模板开发系列之DOM、CSS规范
  8. 大国崛起(四)————英国
  9. HTML5期末大作业:动漫电网站设计——动漫电影《你的名字》(7页) HTML+CSS大作业: 动漫电网页制作作业_动漫电网页设计...
  10. 【报告分享】2019年人工智能中国专利技术分析报告.pdf(附下载链接)