首页 > 编程语言 >使用python 绘制中国人口热气图

使用python 绘制中国人口热气图

时间:2022-10-28 15:44:05浏览次数:81  
标签:plt 查看 python 代码 热气 点击 import 绘制 color

使用 python matlib 绘制热力图

绘制世界地图

点击查看代码
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16,8))
m = Basemap()
m.drawcoastlines()

plt.show()

绘制国家轮廓

点击查看代码
 m.drawcountries(linewidth=1.5)
直接定位到中国版图
点击查看代码
m = Basemap(llcrnrlon=73, llcrnrlat=18, urcrnrlon=135, urcrnrlat=53)

添加兰博投影效果

点击查看代码
m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc', lat_1=33, lat_2=45, lon_0=100)

绘制中国省份 需要下载中国经纬度 csv

点击查看代码
m.readshapefile('CHN_adm_shp/CHN_adm1', 'states', drawbounds=True)

先给中国地图上色

  • gca :Get Current Axes 获得当前图形的座标轴
  • facecolor ='r' r= red
点击查看代码
from matplotlib.patches import Polygon

ax = plt.gca() 
for nshape, seg in enumerate(m.states):
    poly = Polygon(seg, facecolor='r')
    ax.add_patch(poly)

添加人口人力热力效果

增加调色板基准色

点击查看代码
cmap = plt.cm.YlOrRd

调整每个省份的颜色

点击查看代码
colors[s] = cmap(np.sqrt((pop - vmin) / (vmax - vmin)))[:3]

将颜色绘制到地图

点击查看代码
color = rgb2hex(colors[statenames[nshape]]) poly = Polygon(seg, facecolor=color, edgecolor=color)

一下完整代码

点击查看代码
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.colors import rgb2hex
import numpy as np
import pandas as pd

plt.figure(figsize=(16, 8))
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()

m.readshapefile('CHN_adm_shp/CHN_adm1', 'states', drawbounds=True)

df = pd.read_csv('pop.csv')
df['省名'] = df.地区
df.set_index('省名', inplace=True)

colors = {}
provinces = []
for shape_dict in m.states_info:
    name = shape_dict['NL_NAME_1']
    p = name.split('|')
    s = p[1] if len(p) > 1 else p[0]
    provinces.append(s)
    pop = df['人口数'][s]
    colors[s] = plt.cm.YlOrRd(np.sqrt((pop - 3000000) / (100000000 - 3000000)))[:3]

ax = plt.gca()
for n_shape, seg in enumerate(m.states):
    color = rgb2hex(colors[provinces[n_shape]])
    poly = Polygon(seg, facecolor=color, edgecolor=color)
    ax.add_patch(poly)

if __name__ == '__main__':
    plt.show()

参考: https://segmentfault.com/a/1190000010871928

标签:plt,查看,python,代码,热气,点击,import,绘制,color
From: https://www.cnblogs.com/guanchaoguo/p/16836311.html

相关文章

  • python-threading.Event()
    threading模块提供Event类实现线程之间的通信threading.Event可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另......
  • AN---绘制图形并上色
    我们在用AN绘图的时候,经常会遇到,绘制了图形但是上不了色的问题,下面就记录一下:首先在用【线条工具】绘制图形的时候,开启【对象绘制】:其次打开油漆桶工具:需要选择下面的【......
  • python 脚本实现XCode自动打包/上传蒲公英/钉钉机器人通知
    通常我们使用XCode打包要archive然后导出,然后上传到蒲公英,再然后拿到蒲公英的截图去打包群里通知打包完成,既然这些动作都是由一个个步骤完成,那么何不使用python写一个脚......
  • 求大神解答:利用python爬取各县GDP结果为空,求大神看看我的代码问题在哪?
    目标url=红黑人口库代码importrequestsfromlxmlimportetreeimporttimeif__name__=='__main__':  url='https://pagead2.googlesyndication.com/getconfig/soda......
  • python3.9不支持win7
    安装:Anaconda3-2022.10-Windows-x86_64.exe会报错:FailedtocreateAnacondamenus详细信息:ErrorloadingPythonDLLxxxpython39.dll,LoadLibrary:PyInstaller:Forma......
  • python自学 简单的网站开发 1
     URL路由配置 1、先在PyCharm中创建个Django项目,然后在PyCharm中的终端窗口输入。pythonmanage.pystartappmyapp 创建一个名字为myapp的应用2、然后在终......
  • c# - mono - 调用 python 脚本 .py 文件
    c#-mono-调用python脚本.py文件一、定义命令行工具:在windows下是cmd.exe,在mac下使用bash。二、踩过的坑使用Process类,启动一个“命令行工具”,在通过向标准......
  • python - 字符串、日期时间转+格式化
    python-字符串、日期时间转+格式化 #!/usr/bin/envpython3#coding=utf-8importosimportsysimportargparseimportcodecsimporttime,datetimedeftest():#"24/......
  • python - 定时拆分备份 nginx 日志
    python-定时拆分备份nginx日志一、背景:nginx的log不会自动按天备份,而且记录时间格式不统一,此程序专门解决这两个问题;二、windows部署方式1.在nginx目录,创建一个n......
  • python - 分析 iis 日志 wwwlogs
    python-解析iis日志iis日志分析工具比较多,基本都支持windows(不夸平台),统计维度也有限。有找工具的时间还不如自己写一个!!!分析时注意iis日志是格林尼治时间,没有加时区。分......