我想用python 画中国和美国的地图,刚刚学会了画美国地图,特做一个记录。

当然首先是用google 找网上资料。

找到下面的链接:https://stackoverflow.com/questions/42463200/draw-state-abbreviations-in-matplotlib-basemap

下面的代码基本来自这里的回答2,就是标记为答案的回答。

直接运行,发现缺省地形文件,在这里找到了:https://github.com/matplotlib/basemap/tree/master/examples

这里还顺便找了一个画美国地图的文件,名字是:fillstates.py,大家可以去下载。

先把我上面的代码,并修改调试好了的列出来:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap as Basemap
from matplotlib.patches import Polygonplt.figure(figsize=(18,9))short_state_names = {'AK': 'Alaska','AL': 'Alabama','AR': 'Arkansas','AS': 'American Samoa','AZ': 'Arizona','CA': 'California','CO': 'Colorado','CT': 'Connecticut','DC': 'District of Columbia','DE': 'Delaware','FL': 'Florida','GA': 'Georgia','GU': 'Guam','HI': 'Hawaii','IA': 'Iowa','ID': 'Idaho','IL': 'Illinois','IN': 'Indiana','KS': 'Kansas','KY': 'Kentucky','LA': 'Louisiana','MA': 'Massachusetts','MD': 'Maryland','ME': 'Maine','MI': 'Michigan','MN': 'Minnesota','MO': 'Missouri','MP': 'Northern Mariana Islands','MS': 'Mississippi','MT': 'Montana','NA': 'National','NC': 'North Carolina','ND': 'North Dakota','NE': 'Nebraska','NH': 'New Hampshire','NJ': 'New Jersey','NM': 'New Mexico','NV': 'Nevada','NY': 'New York','OH': 'Ohio','OK': 'Oklahoma','OR': 'Oregon','PA': 'Pennsylvania','PR': 'Puerto Rico','RI': 'Rhode Island','SC': 'South Carolina','SD': 'South Dakota','TN': 'Tennessee','TX': 'Texas','UT': 'Utah','VA': 'Virginia','VI': 'Virgin Islands','VT': 'Vermont','WA': 'Washington','WI': 'Wisconsin','WV': 'West Virginia','WY': 'Wyoming'
}m = Basemap(llcrnrlon=-119,llcrnrlat=22,urcrnrlon=-64,urcrnrlat=49,projection='lcc',lat_1=33,lat_2=45,lon_0=-95)
# data from U.S Census Bureau
# http://www.census.gov/geo/www/cob/st2000.html
shp_info = m.readshapefile('st99_d00','states',drawbounds=True)
printed_names = ['HI','AK']for shapedict,state in zip(m.states_info, m.states):short_name = list(short_state_names.keys())[list(short_state_names.values()).index(shapedict['NAME'])]if short_name in printed_names: continue# center of polygonx, y = np.array(state).mean(axis=0)# You have to align x,y manually to avoid overlapping for little statesplt.text(x+.1, y, short_name, ha="center")printed_names += [short_name,] #print(x,y,short_name)m.drawparallels(np.arange(25,65,20),labels=[1,0,0,0])
m.drawmeridians(np.arange(-120,-40,20),labels=[0,0,0,1])
plt.title('The United States of North America')
plt.show()

我对原来的代码做了一点修改,开始的时候总是报错。

short_name = short_state_names.keys()[short_state_names.values().index(shapedict['NAME'])]

修改为:

short_name = list(short_state_names.keys())[list(short_state_names.values()).index(shapedict['NAME'])]

就是加了2个list, 我一个朋友(海鹰)帮我修改的,在此感谢他。

开始的时候地图比较小,添加了

plt.figure(figsize=(18,9))

这样地图大了一点。还有AK,HI 离美国本地太远,后来去掉了这2个的标记,printed_names初始加了这2个。

#print(x,y,short_name) 开始测试用了,现在也注释掉了。

最后地图结果是这样的:

我运行fillstates.py ,结果是这样的,彩色的,颜色标示人口密度,但没有标注州名:

还没有找到中国地图的数据,下一步画出中国地图来。

用python 画美国地图相关推荐

  1. python画交互式地图_使用Python构建交互式地图-入门指南

    python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...

  2. echarts 山东地图_用Python画中国地图,实现各省份数据可视化

    第一步:安装pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本 pip install pyecharts==0.1.9 ...

  3. python 可视化 画直线_用Python画江苏省地图,实现各地级市数据可视化

    前言 万万没想到我昨天发布的用Python画中国地图,实现各省份数据可视化这篇文章获得了很多朋友的喜欢,目前已获得了66次转发,314次收藏,也让我涨了60个左右粉丝. 小嘚瑟 虽然这点成绩跟很多大V ...

  4. Cartopy画地图第七天(python画浮雕地图和比例尺)

    Cartopy画地图第七天(python画浮雕地图和比例尺) 本文利用了python.cartopy进行了浮雕地图的绘制,同时还画了比例尺. 先上图为敬,一些图例符号不对请不要介意,随便表示的 第一. ...

  5. 如何用python画出中国地图-用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  6. 用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  7. 用python画美国国旗

    最近我们老师让我们用 python 中的海龟画图模块来画一个美国国旗,一开始就在网上查了一下,我在网上找了很久只找到一个方法,开始没有注意就把网上的那个代码复制下来运行了一遍,突然发现那个代码有一点问 ...

  8. python画高德地图

    背景 有时候在商业可视化里面,plotly是我用的比较多的一个工具. 而我工作,有时候也是需要通过地图来解析人群分布的. 又因为公司收集到的数据都是高德地图传递的经纬度,那如果不用高德地图来做底图,会 ...

  9. 用Python画中国地图,实现各省份数据可视化!可视化简直了!

    第一步:安装pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本 pip install pyecharts==0.1.9 ...

  10. python画美国国旗,小白画法

    import turtle as t t.speed(9) #设置速度 long=741 #国旗长 按照美国国旗比例设置长宽 wide=390 #国旗宽 wide1=wide/13 #每格宽度 t.s ...

最新文章

  1. 注册表----修改Win7登录界面
  2. 老牛吃嫩草塞到牙?某程序员追到00后女朋友,却吐槽她整天买盲盒,已经买一屋子了!...
  3. hdu 4831(线段树---待解决)
  4. 控制反转-依赖倒置-依赖注入
  5. tomcat中开启SSL
  6. Set Mismatch leetcode 645
  7. java opencv gamma_OpenCV函数cvAddWeighted调整alpha和gamma值 | 学步园
  8. 马斯克震撼演讲:世界上最可怕的事情,是没有内驱力
  9. jmeter连接mysql并定义变量提供给后续接口使用
  10. 简单的js在html页面打印机,在javaScript中如何连接打印机
  11. 一周市场摘抄20210125
  12. 专业3C认证CCC认证机构
  13. JQuery常见命令查找网站
  14. Qt 笔锋 钢笔 压力值
  15. 提高计算机启动速度的是什么,三种方法让你实现电脑秒开!提升电脑开机速度就是这么简单!...
  16. python推特爬虫_Tweepy1_抓取Twitter数据
  17. 用了这么多年的MCU,你知道哪些MCU原厂最牛?
  18. Java调用Bartender控制条码打印机
  19. 必应每日壁纸API HTML 使用必应每日API为背景 css 背景图片 加模糊 遮罩
  20. 运放单电源供电和双电源供电

热门文章

  1. 英语知识系列:单词中元音字母发音规律
  2. DeskSpace-适用于Vista的类似Beryl的3D多维数据集虚拟桌面管理器
  3. 海湾gst5000协议号_海湾GST5000主机操作说明
  4. C虾仔笔记 - HorizontalScrollView水平滚动视图
  5. 视频流媒体直播系统---------BroadVision WebTV
  6. QQ等级图标排名说明_QQ等级表,QQ最高等级(皇冠) qq到一星要5天
  7. CC2530 实现无线串口
  8. protobuf生成Go代码插件gogo/protobuf
  9. 一些常用的软件网络端口协议分类介绍
  10. C语言模拟实现虚拟存储管理(请求分页存储管理)