热力图,是一种通过对色块着色来显示数据的统计图表。
它通过使用颜色编码来表示数据的值,并在二维平面上呈现出来。
热力图通常用于显示大量数据点的密度、热点区域和趋势。

绘图时,一般较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。

热力图适合用于查看总体的情况、发现异常值、显示多个变量之间的差异,以及检测它们之间是否存在任何相关性。

1. 主要元素

热力图的主要元素如下:

  1. 矩形块:每个矩形块都有一个对应的位置。表示某种属性、频率、密度等。
  2. 颜色映射:通常使用渐变色带来表示数值的大小或密度。常见的颜色映射包括从冷色调(如蓝色)到热色调(如红色)的渐变,表示数值从低到高的变化。
  3. 热力密度:通过颜色的深浅来表示数据的密度或频率。较浅的颜色表示较低的密度或频率,而较深的颜色表示较高的密度或频率。
  4. 坐标轴:热力图通常在二维平面上显示,因此会有两个坐标轴,分别表示水平和垂直方向上的位置。

2. 适用的场景

热力图适用于以下分析场景:

  • 数据密度分析:显示数据点的密度分布情况。它可以帮助用户观察数据的聚集区域和稀疏区域,从而揭示数据的分布模式和趋势。
  • 热点区域识别:识别数据中的热点区域,即数据密度较高的区域。对于发现热门地区、热门产品或热门事件等具有重要意义。
  • 趋势分析:通过观察颜色的变化,可以分析数据在不同区域或时间段的变化趋势。
  • 空间数据分析:在地理信息系统(GIS)和位置数据分析中,可以显示地理空间上的数据分布和密度,帮助用户理解地理区域的特征和差异。
  • 网站流量分析:显示用户在网页上的点击热度和浏览热度。这有助于优化网站布局、改进用户体验和提高转化率。

3. 不适用的场景

热力图在以下分析场景中可能不适用:

  • 无序数据:对于无序的数据,热力图可能无法提供有意义的分析结果。
  • 数据缺失:如果数据中存在大量缺失值或空白区域,可能无法准确地反映数据的密度和分布情况。
  • 多个并行路径:通常用于展示单一维度的数据分布情况。如果需要同时比较多个维度或路径的数据,热力图可能不是最合适的选择。

4. 分析实战

本次分析今年上半年南京主要的几个区二手房的成交数量情况。

4.1. 数据来源

数据来自链家网南京地区的二手房成交的页面。
整理好的数据可以从下面的地址下载:
https://databook.top/lianjia/nj

各个区的二手房交易数据已经整理成csv格式。

import os

df_dict = {}
#数据解压的地址
fp = "d:/share/data/南京二手房交易"
for f in os.listdir(fp):
df = pd.read_csv(os.path.join(fp, f))
df_dict[f] = df df_dict #合并所有区的数据

4.2. 数据清理

清理数据的主要几个步骤:

  1. dealDate列转换为 日期(datetime)格式
  2. 按周统计的交易数量
  3. 统计结果保存到新的字典中(df_stat),取日期最近的10条
df_stat = {}

for k, df in df_dict.items():
df["dealDate"] = pd.to_datetime(df["dealDate"])
# 最近10周的交易量
week_sum = df.resample("W", on="dealDate").name.count()
week_sum = week_sum.sort_index(ascending=False) df_stat[k.replace(".csv", "")] = week_sum.head(10) df_stat

4.3. 分析结果可视化

更加各个区的成交数量绘制最近10周的交易热力图。

x_labels = []
y_labels = df_stat.keys() # Y周的标签
data = []
for _, v in df_stat.items():
if len(x_labels) == 0: # X轴的日期标签
x_labels = v.index.strftime("%Y-%m-%d").tolist()
x_labels.reverse() v = v.sort_index()
data.append(v.tolist()) plt.xticks(ticks=np.arange(len(x_labels)),
labels=x_labels,
rotation=45)
plt.yticks(ticks=np.arange(len(y_labels)),
labels=y_labels) plt.imshow(data, cmap=plt.cm.hot_r)
plt.colorbar()
plt.show()

从热力图中可以看出,江宁区浦口区的成交数量明显多于其他区,尤其是江宁区
其次是鼓楼区秦淮区稍好一些(可能和这2个区学区房比较多有关),而溧水区六合区明显交易量不行。

【matplotlib 实战】--热力图的更多相关文章

  1. (转)matplotlib实战

    原文:https://www.cnblogs.com/ws0751/p/8361330.html https://www.cnblogs.com/ws0751/p/8313017.html---mat ...

  2. matplotlib实战

    plt.imshow(face_image.mean(axis=2),cmap='gray') 图片灰度处理¶   size = (m,n,3) 图片的一般形式就是这样的 rgb 0-255 jpg图 ...

  3. matplotlib绘制热力图

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/jin_tmac/article/deta ...

  4. python学习之matplotlib实战2

    import numpy as np import matplotlib.pyplot as plt def main(): #scatter fig = plt.figure() ax = fig. ...

  5. python学习之matplotlib实战

    import numpy as np def main(): # print("hello") # line import matplotlib.pyplot as plt x = ...

  6. pandas补充(其二)与matplotlib补充

    今日内容概要 pandas补充知识(2) matplotlib补充知识 今日内容详细 pandas补充 数据汇总 # 数据透视表 pd.pivot_table(data,values-None,ind ...

  7. matplotlib基本使用(矩形图、饼图、热力图、3D图)

    使用matplotlib画简单的图形: #-*- coding:utf-8 -*- from numpy.random import randn import matplotlib.pyplot as ...

  8. 第一章:AI人工智能 の 数据预处理编程实战 Numpy, Pandas, Matplotlib, Scikit-Learn

    本课主题 数据中 Independent 变量和 Dependent 变量 Python 数据预处理的三大神器:Numpy.Pandas.Matplotlib Scikit-Learn 的机器学习实战 ...

  9. 《机器学习实战-KNN》—如何在cmd命令提示符下运行numpy和matplotlib

    问题背景:好吧,文章标题是瞎取得.平常用cmd运行python代码问题不大,我在学习<机器学习实战>这本书时,发现cmd无法运行import numpy as np以及import mat ...

  10. 数据可视化基础专题(十三):Matplotlib 基础(五)常用图表(三)环形图、热力图、直方图

    环形图 环形图其实是另一种饼图,使用的还是上面的 pie() 这个方法,这里只需要设置一下参数 wedgeprops 即可. 例子一: import matplotlib.pyplot as plt ...

随机推荐

  1. selenium元素定位防踩坑---StaleElementReferenceException解决方法

    1.异常原因 执行调试报错:selenium.common.exceptions.StaleElementReferenceException: Message: stale element refe ...

  2. 【SpringBoot】WebSocket在线聊天

    先看一下页面效果,有点简单粗暴!哈哈哈哈哈,别介意. 本文参考:SpringBoot2.0集成WebSocket,实现后台向前端推送信息 新建一个springboot项目 引入相关依赖 <dep ...

  3. GoFrame v2.5 版本发布,企业级 Golang 开发框架

    大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦! 本次版本主要是对已有功能组件以及开发工具上的改进工作.其中,开发工具新增了 gf gen ctrl 命令,以规范化定义.开发 AP ...

  4. 编码技巧 --- 使用dynamic简化反射

    引言 dynamic 是 Framework 4.0 就出现特性,它的出现让 C# 具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,默认 dynamic 对象支持开发者想要的任何特性. ...

  5. 学习 HBase

    1 由来 HBase 应大数据而生,是Apache Hadoop项目孵化而来的一种NoSQL数据库,HBase 是 Hadoop Database 的简称. 它的出现有以下几个原因: 大数据时代的到来 ...

  6. Django: 后台常用操作

    指定状态码 return JsonResponse(data, status=201) Djano删除数据库 删除对应数据库后,删除对应文件 删除对应的记录 Django后台管理 创建超级管理员 py ...

  7. .NET Core多线程 (1) Thread与Task

    去年换工作时系统复习了一下.NET Core多线程相关专题,学习了一线码农老哥的<.NET 5多线程编程实战>课程,我将复习的知识进行了总结形成本专题.同时也特别推荐有兴趣的读者去学习一线 ...

  8. 修改DataTable中的值

    DataTable dt ;for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; row.BeginEdit() ...

  9. LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<LeetCode952三部曲& ...

  10. git clone时报错:Permission denied

    一.问题简述: 执行git clone git@github.com:T-Better/Soft_test.git时报错:\302\226git@github.com: Permission deni ...