用python 画美国地图

我想用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 Polygon

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

short_state_names = {
        'AK': 'Alaska',
        'AL': 'Alabama'
### 使用 Python 进行地理可视化制作地图 对于参加美国大学生数学建模竞赛(美赛),利用 Python 制作高质量的地图可视化能够显著增强模型的表现力和说服力。下面介绍几种常用的方法和技术。 #### 1. 基于 `amCharts` 的像素地图实现 借助第三方库如 amCharts 提供的 PixelMap 功能,可以根据特定指标自定义地图的颜色方案,从而突出不同地区的特征[^1]。此方法适合展示具有明显地域差异的数据集,比如各州的人口数量、经济水平等。 ```python import requests from IPython.display import HTML url = "https://pixelmap.amcharts.com/" response = requests.get(url).text HTML(response) ``` 注意上述代码仅作为调用在线资源的例子,在实际比赛中应下载离线版本并集成到项目中去。 #### 2. 结合多源数据构建综合评估地图 除了单一维度的信息外,还可以融合多种类型的数据来源,例如人口密度、土地用途以及夜间的灯光强度等因素,以此为基础建立更加复杂而全面的空间分析框架[^2]。这种做法有助于揭示隐藏的社会现象或环境问题,并提供更深层次的理解视角。 ```python import geopandas as gpd import pandas as pd import matplotlib.pyplot as plt # 加载基础地图文件与中国城市人口统计数据 world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) cities = pd.read_csv('path_to_city_population.csv') # 合并数据框并将结果绘制成图表 merged = world.merge(cities, how='left', left_on=['iso_a3'], right_on=['country_code']) fig, ax = plt.subplots(figsize=(15, 8)) merged.plot(column='population', cmap='YlOrRd', linewidth=0.8, edgecolor='0.8', legend=True, ax=ax) plt.title("World Population Density Map", fontsize=16) plt.show() ``` 这段脚本展示了如何读取全球矢量边界文件并与城市人口统计资料相匹配,最终生成一张反映世界范围内人口分布情况的世界地图。 #### 3. 创建动态变化过程动效果 为了更好地表达随时间演变的趋势,可以采用 Matplotlib 库中的 `FuncAnimation` 类来设计交互式的图形界面,使得观众可以通过拖动滑块等方式查看不同时刻下的状态变迁状况[^3]。这对于研究诸如气候变化影响下海平面上升速度等问题尤为有用。 ```python import numpy as np from matplotlib.animation import FuncAnimation def create_dynamic_map(data_series): fig, ax = plt.subplots() # 初始化图像参数设置 line, = ax.plot([], [], lw=2) ax.set_xlim(0, max(len(data_series), 10)) # 设置横坐标范围 ax.set_ylim(min(data_series)-abs(max(data_series))*0.1, max(data_series)+abs(max(data_series))*0.1) # 自适应纵坐标范围 def init(): """初始化函数""" line.set_data([], []) return (line,) def animate(i): """更新每一帧的内容""" x = list(range(i+1)) y = data_series[:i+1] line.set_data(x, y) return (line,) anim = FuncAnimation(fig, animate, init_func=init, frames=len(data_series), interval=200, blit=True) plt.close() # 防止直接显示静态图 return anim.to_jshtml() # 示例:模拟某地区GDP增长趋势 gdp_growth_rate = [np.random.rand()*0.05 + 0.03 for _ in range(10)] create_dynamic_map(gdp_growth_rate) ``` 以上实例说明了怎样基于给定的时间序列 GDP 数据构造一个简单的经济增长率折线图,并将其转换成可播放的小视频形式嵌入报告文档之中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值