ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python Seaborn介绍和Seaborn热力图

2022-01-11 14:04:10  阅读:222  来源: 互联网

标签:seaborn Python pyplot Seaborn 力图 heatmap Population data population


 

Python Seaborn heatmap

什么是Seaborn

seaborn是一个基于python matplotlib的一个数据可视化库,提供了更高级的API接口使得绘制图形更加简单高效。

https://seaborn.pydata.org/

如何利用seaborn绘制heatmap

seaborn 对应的heatmap 的参数介绍:

seaborn.heatmap — seaborn 0.11.2 documentation (pydata.org)

利用Downloads » Population Count, v4.11: Gridded Population of the World (GPW), v4 | SEDAC (columbia.edu)提供的世界人口的ASCII栅格数据可以绘制目标区域的人口分布热力图。

数据简单介绍

 

 

 

 

ncols和nrows是数据的列数和行数

xllcorner和yllcorner对应该数据方块的左下角的经度和纬度。

cellsize是每个数据占用的大小,即30/3600维度或经度,换算成长度大约为1km

-9999表示该cell没有数据或数据为0.

 

 

 

 

具体解释见代码:

# 8 Block data. Data is the total processed
# data of eight blocks
data = np.array(json.load(open('8_block_data.data'))['res'])
population = sum(data[:, 2])
name = ['lon', 'lat', 'population']
df = pd.DataFrame(columns=name, data=data)
df = df.pivot('lat', 'lon', 'population')
# set figsize = 10 * 10
f, ax = pyplot.subplots(figsize=(10, 10))
# Manually set cmap parameters to modify color matching, refer to:https://seaborn.pydata.org/generated/seaborn.diverging_palette.html#seaborn.diverging_palette
# set color palette to produce 1000 reds
cmap = sns.color_palette("Reds", 1000)
sns.heatmap(df, fmt='.2', robust=True, ax=ax, xticklabels=False,
            yticklabels=False, cmap=cmap, cbar=True, square=True, cbar_kws={"orientation": "horizontal"}).invert_yaxis()
population = int(population)
population = str(population)
# title set
pyplot.title('World Population Density Map' +
             "(World Population≈" + population+")")
# save image dpi = 2000
pyplot.savefig('World Population Density Map' + '.png', dpi=2000)
pyplot.show()

效果

 

 

 

 

 

效果如图,而且世界总人口计算是莫得问题的。

不得不说,python真的太方便使用了,各种各样的包都有,根本不用动脑子,哈哈哈。

 

标签:seaborn,Python,pyplot,Seaborn,力图,heatmap,Population,data,population
来源: https://www.cnblogs.com/miao123-blog/p/15787965.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有