01

热力地图是根据指标数据的大小,对各地区按比例填充颜色,用颜色的深浅代表数值的大小。由于展现的数据与地理位置相关,所以让信息沟通变得更加直观形象,也更具专业的品质。

传统的数据地图,地理区域的面积大小严重失衡,但是这又与展示的数据大小无关,造成面积小的区域在地图上可能难以识别。比如说,北京和上海,在地图上常常看不清楚。

为了统一各区域的大小,同时体现相对的地理位置,我们使用正六边形来代替地图上的区域。

比如说,为了展现各省 2019 年的 GDP 数据,我们可以制作一个如下的热力地图:

从上面的热力地图可以直观地看出,广东和江苏的 GDP 明显高于其他地区。

02

你可以前往 https://github.com/linjiwx/mp 下载画图用的数据和完整代码。

下面是作图的过程。

首先,导入所需的库,并设置中文字体和定义颜色等。

# 导入所需的库
import pandas as pd
import numpy as np
from plotnine import *
from pylab import mpl
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
from matplotlib.collections import PatchCollection
from matplotlib import cm, colors# 正常显示中文标签
mpl.rcParams['font.sans-serif'] = ['SimHei']# 正常显示负号
mpl.rcParams['axes.unicode_minus'] = False# 禁用科学计数法
pd.set_option('display.float_format', lambda x: '%.2f' % x) # 定义颜色,主色:蓝色,辅助色:灰色,互补色:橙色
c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF','灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC','橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}

其次,读取和定义数据。

# 从 Excel 文件中读取数据
df = pd.read_excel('./data/中国省份坐标.xlsx')
gdp = pd.read_excel('./data/各省2019年GDP数据.xlsx')# 计算每个省份的中心坐标
df_center = df.groupby('Province').mean()# 合并省份坐标和数据
dfxy = pd.merge(df_center, gdp, on='Province', how ='left')# 定义颜色数值
color_value = np.array(dfxy.GDP)

接下来,开始用「面向对象」的方法进行画图。

# 使用「面向对象」的方法画图,定义图片的大小
fig, ax = plt.subplots(figsize=(16, 9))# 设置背景颜色
fig.set_facecolor('w')
ax.set_facecolor('w')# 设置标题
ax.set_title('\n各省 2019 年的 GDP 数据', loc='center', fontsize=26)# 循环设置每个省份
patches = []
for Province in np.unique(df['Province']):# 筛选每个省份的数据dfp = df[df['Province'] == Province]# 多边形的每个位置rect = mpathes.Polygon([(x, y) for x, y in zip(dfp['x'], dfp['y'])])patches.append(rect)# 多边形内部显示省份名称和数据ax.text(df_center.loc[Province].x, df_center.loc[Province].y, '\n'+Province+'\n'+'%.2f' % dfxy[dfxy['Province'] == Province].GDP.values[0], fontsize=15, va='center', ha='center', color=c['深灰色'])# 填充形状和颜色
collection = PatchCollection(patches, alpha=0.5, cmap=plt.cm.Oranges, ec=c['浅灰色'], fc='w', lw=1)
collection.set_array(color_value)
ax.add_collection(collection)# 隐藏边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)# 隐藏 X、Y 轴
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)# 避免变形
plt.axis('equal')plt.show()

03

被誉为「摩天大楼之父」的美国著名建筑设计师路易斯·沙利文曾经说过一句名言:

形式永远服从于功能。

这句话用在数据可视化领域非常恰当,数据可视化是为了让数据更容易被读者理解,而不是为了炫耀。我们所使用的每一种视觉效果,都应该有其明确的、有价值的作用。

试想一下,如果我们的数据可视化作品,并没有提高易读性,而仅是为了美观或是为了炫耀自己使用软件的能力,那么同时使用多种效果只会加大读者阅读的难度。

无论你是否花费了大量的努力来精心制作,只要没人能理解你想表达的内容,你的数据可视化作品就是失败的,而你就应该有责任去解决这个问题。

●10万条弹幕,发现战神终极奥义!

●12000+字超详细 SQL 语法速成!

后台回复“入群”即可加入小z干货交流群

干货????

数据可视化|用热力地图进行数据分析相关推荐

  1. 2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《数据可视化:构建实时动态运营数据分析大屏》篇...

    实验背景介绍 了解更多2017云栖大会·杭州峰会 TechInsight & Workshop. 本手册为云栖大会Workshop之<在线用户行为分析:基于流式计算的数据处理及应用> ...

  2. 2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《数据可视化:构建实时动态运营数据分析大屏》篇

    点击有惊喜 实验背景介绍 了解更多2017云栖大会·杭州峰会 TechInsight & Workshop. 本手册为云栖大会Workshop之<在线用户行为分析:基于流式计算的数据处理 ...

  3. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?

    python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...

  4. python作中国地图背景气泡图_Python数据可视化:香港地图、房价可视化,绘制气泡图...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于DataCharm ,作者宁海涛 前言 今天的推文教程使用geopandas进行空间 ...

  5. python3d_Power BI将超越python和D3,成为数据可视化的福音、定性数据分析的未来?...

    提问者修改了问题描述,感觉之前的描述更准确一些. 先说我的结论:Power BI确实是面向浅编程用户的敏捷BI工具,也是数据可视化的福音(免费且有用户基础足够大),定性数据分析的未来是什么这个我不清楚 ...

  6. 前端数据可视化之高德地图

    高德地图&数据可视化 仙人指路,才高八斗 区域掩模和遮罩一起使用 仙人指路,才高八斗 Gaud map在手,做啥都不愁 区域掩模和遮罩一起使用 先来搭建盒子模型和引入高德地图 然后在body里 ...

  7. python气泡图的地图_Python数据可视化:香港地图、房价可视化,绘制气泡图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于DataCharm ,作者宁海涛 前言 今天的推文教程使用geopandas进行空间 ...

  8. Python数据可视化:香港地图、房价可视化,绘制气泡图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于DataCharm ,作者宁海涛 前言 今天的推文教程使用geopandas进行空间 ...

  9. 前端数据可视化可绘制地图等插件:Highcharts、Echarts和D3

    前端数据可视化插件有很多,但我用过的只有Highcharts(https://www.hcharts.cn/).Echarts(http://echarts.baidu.com/)和D3(https: ...

  10. 大数据| 数据可视化学习-高德地图可视化工具

    最近有做一些关于地理信息数据的处理,使用了高德和百度地图的API,个人还是比较习惯使用高德,最近发现高德的一些地理数据的可视化的功能还挺有意思. 登录开发平台,可视化数据,可视化格式有点线面三种数据, ...

最新文章

  1. Hibernate搭建开发环境+简单实例(二)
  2. Java基础07 包
  3. JQuery实现表格行当复制
  4. 题目:三个售票员 卖出 30张票 || 多线程编程的企业级套路+模板||synchronized与Lock的区别
  5. rsync 断点续传
  6. (一)Linux基本知识
  7. SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法此信息转载自BlueSky's Blog,www.heuupk.com,为尊重无价的知识请保留此版权信息。...
  8. Waymo自动驾驶数据集介绍与使用教程
  9. [转载] Python中filter筛选函数匿名参数问题
  10. 01.mac下安装配置maven
  11. NVIDIA CUDA各版本下载链接(包括最新11版本和以往10.2版本)
  12. Scratch之顺序、循环、选择三种程序结构
  13. 什么是 Null Pointer Exceptions (java.lang.NullPointerException) ,是什么原因造成的?
  14. 大数据知识框架体系总结梳理
  15. caffe基础-07Reshape层的配置
  16. 惊悚恐怖好片推荐(喜欢看片的朋友们看过来)
  17. Android常用加密解密实现方式
  18. 七牛云存储,不再为网站空间担心
  19. 小米电视ES65 2022款 评测
  20. php仿银行电子口令卡

热门文章

  1. 分形之皇冠(Crown)
  2. 2022-2027年中国小麦加工行业市场深度分析及投资战略规划报告
  3. html毕业答辩ppt模板范文,答辩ppt模板|答辩总结范文
  4. 【ATSC】 为什么选择ATSC 3.0
  5. android启用hdcp_如何在Google Android模拟器中启用Android Market
  6. 服务器搬迁需要注意的几个地方
  7. SQLiteDatabaseLockedException: database is locked
  8. 人工智能和网络安全,一场正发生的挑战
  9. 解决xshell中数字小键盘不能使用的问题
  10. 电脑提示文件或目录损坏且无法读取