文 | 潮汐
来源:Python 技术「ID: pythonall」
上一篇文章讲解了Basemap基础知识,今天的文章主要阐述 BaseMap 实战。话不多说,一起来实战吧!
BaseMap 画世界地图
BaseMap 画世界地图,主要方法是画地球海岸线,画国家分界线主要方法是: m.drawcoastlines()
BaseMap 画地球地图详细代码如下:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import numpy as np
def drawcoast():
plt.figure(figsize=(12, 8))
m = Basemap() # 创建一个地图
m.drawcoastlines() # 画海岸线
plt.show() # 显示图像
if __name__ == '__main__':
drawcoast()
运行结果图如下:
用 BaseMap 画中国地图
使用 BaseMap 画中国地图时需要增加中国的经纬度信息,详细方法如下:
# 画中国地图
def draw_china():
plt.figure(figsize=(10, 6))
m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45,
lon_0=100)
m.drawcountries(linewidth=1.5)
m.drawcoastlines()
plt.show()
中国地图显示如下:
用 BaseMap 绘制地球
def draw_basic():
map = Basemap(projection='ortho', lat_0=0, lon_0=0)
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='gray',lake_color='aqua')
map.drawcoastlines()
plt.show()
显示图片如下:
用 BaseMap 绘制人口分布图
根据各城市主要人口分布情况,绘制了城市人口分布图。具体方法和代码如下:
[En]
According to the main population distribution of each city, the urban population distribution map is drawn. The detailed method and code are as follows:
def drawearth():
names = []
pops = []
lats = []
lons = []
countries = []
file = open("data/main_city", encoding='utf-8').readlines()
for line in file:
info = line.split()
names.append(info[0])
pops.append(float(info[1]))
lat = float(info[2][:-1])
if info[2][-1] == 'S': lat = -lat
lats.append(lat)
lon = float(info[3][:-1])
if info[3][-1] == 'W': lon = -lon + 360.0
lons.append(lon)
country = info[4]
countries.append(country)
# set up map projection with
# use low resolution coastlines.
map = Basemap(projection='ortho', lat_0=35, lon_0=120, resolution='l')
# draw coastlines, country boundaries, fill continents.
map.drawcoastlines(linewidth=0.25)
map.drawcountries(linewidth=0.25)
# draw the edge of the map projection region (the projection limb)
map.drawmapboundary(fill_color='#689CD2')
# draw lat/lon grid lines every 30 degrees.
map.drawmeridians(np.arange(0, 360, 30))
map.drawparallels(np.arange(-90, 90, 30))
# Fill continent wit a different color
map.fillcontinents(color='#BF9E30', lake_color='#689CD2', zorder=0)
# compute native map projection coordinates of lat/lon grid.
x, y = map(lons, lats)
max_pop = max(pops)
# Plot each city in a loop.
# Set some parameters
size_factor = 80.0
y_offset = 15.0
rotation = 30
for i, j, k, name in zip(x, y, pops, names):
size = size_factor * k / max_pop
cs = map.scatter(i, j, s=size, marker='o', color='#FF5600')
plt.text(i, j + y_offset, name, rotation=rotation, fontsize=10)
plt.title('earth')
plt.show()
if __name__ == '__main__':
drawearth()
绘制出的地球图片如下:
画投影地球
最后来画一个有投影的地球,详细代码如下:
def draw_earth1():
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
plt.figure(figsize=(8, 8))
# 正射投影,投影原点设在了上海周边
m = Basemap(projection='ortho', resolution=None, lat_0=30, lon_0=120)
# 图像原始分辨率是5400*2700,设置scale = 0.5以后分辨率为2700*1350,如此作图
# 迅速不少也不那么占用内存了
m.bluemarble(scale=0.5)
plt.show()
if __name__ == '__main__':
draw_earth1()
绘画结果图如下:
总结
今天的文章就到这里啦,希望今天的文章对大家有帮助!
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起
老规矩,兄弟们还记得么, 右下角的 "在看" 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【 代码 获取方式】
识别文末二维码,回复:潮汐
Original: https://blog.csdn.net/weixin_48923393/article/details/121623672
Author: Python 技术
Title: 神器-可视化分析之Basemap实战详解(二)
相关文章

Tensorflow 2.0 最新版(2.4.1) 安装教程
Tensorflow 2.4.1 前言 Tensorflow 简介 Anaconda 简介 Anaconda 安装 TensorFlow CPU & GPU Tensorflow 安装 Pyc...

QGIS3.16+tensorflow1.15+cuda+cudnn+Keras环境配置
备份一下,以便之后重装系统后用 1.QGIS3.16.0: (下载链接:https://qgis.org/downloads/QGIS-OSGeo4W-3.16.0-1-Setup-x86_64.ex...

tensor学习 1 -tensor格式
1、tf.constant 创建一个常量 2、tf.range 创建一个序列 tf.rang(开始,结束,步长) 开始 Original: https://blog.csdn.net/cometxd/...

骨传导耳机哪个牌子好?骨传导耳机排行榜
说起骨传导首次出现是在1935年,艾格·汉德(Edgar Hand),起初是给病人配备骨传导耳机,可以帮助其听到周围的东西,随后骨传导逐步纳入了医学研究范畴,直到21世纪初形成电子消费品被广大世人所知...

NLP(一)——文本处理
近期在阅读跨模态检索相关论文时,碰到很多处理文本的网络结构以及一些名词不是很了解,通过我的学习现在将这些知识点记录总结。本文中出现的图片来自于我学习的视频截屏:https://www.bilibili...

关于社群经济
现状:靠社群成功的组织,都在慢慢的去社群化。 社群只是人与人之间的连接方式。 一个社群的能量值=精神连接 * 现实连接 * 数字连接 《失控:机器、社会与经济的新生物学》. 凯文.凯利(Kevin K...

100行代码撸一个语音对话助手
之前在CSDN上看到有人用python调用语音api接口实现一个语音对话机器人的功能,于是依葫芦画瓢,按照方法用python撸了一个语音对话助手,并成功在一个linux 智能音箱上应用并实现播报效果。...

windows10 Carla0.9.13安装与入门
最近需要找一款能够模拟车辆的仿真软件,用来验证自动驾驶算法。 在各种搜索引擎百度、Google、bing查找这类关键字,发现大部分都是给出了perscan、carsim、gazebo的答案。但是都不符...

第七届工程训练大赛垃圾分类
第七届全国大学生工程训练大赛垃圾分类 前言 一、机械结构设计 * 1.Solidworks建模 2.建模的不足以及改进 - 1.挡板的添加 2.履带防滑 3.整体实物 二、视觉识别部分 * 1.引入库...

一图看懂DeepSORT整个大流程,多目标跟踪
目录 系列文章 简介 DeepSORT流程图 名词解释 整体流程 重点节点解释 系列文章 【目标跟踪】卡尔曼滤波器(Kalman Filter) 含源码 【目标跟踪】一图看懂DeepSORT大流程 【...

tensorflow2: attention机制实现
zh-CN; margin-top 0pt; margin-bottom 0pt; margin-left 0in; text-align left; direction ltr; unicode-b...

MER 音乐情感识别-论文笔记7
《EXPLAINING PERCEIVED EMOTION PREDICTIONS IN MUSIC: AN ATTENTIVE APPROACH》 文章目...

ubuntu18 CUDA版本降级
用别人的代码训练模型时,由于tensorflow-gpu版本太高,报了很多错,一个个改太麻烦,所以直接降级。tensorflow降级为1.14,与此同时也要换成对应版本的CUDA和cuDNN。 1.t...

语音识别论文汇总
基于 实战课程主要包括三部分内容:1. 算法讲解;2.算法源码解读;3.项目实战;通俗讲解 领域当下 思想,详细解读源码中每一核心模块并基于真实数据集展开项目实战。整体课程覆盖 领域四大核心主题: 分...

【计算机视觉40例】案例10:隐身术
【 导读】本文是专栏《计算机视觉40 例简介》的第10 个案例《隐身术》。该专栏简要介绍李立宗主编《计算机视觉40 例——从入门到深度学习(OpenCV-Python )》一书的40 个案例。 目前,...