python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python matplotlib热力图

python中使用matplotlib绘制热力图

作者:databook

热力图,是一种通过对色块着色来显示数据的统计图表,它通过使用颜色编码来表示数据的值,并在二维平面上呈现出来,本文就给大家介绍一下python使用matplotlib绘制热力图的方法,需要的朋友可以参考下

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

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

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

1. 主要元素

热力图的主要元素如下:

2. 适用的场景

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

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. 数据清理

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

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个区学区房比较多有关),而溧水区六合区明显交易量不行。

以上就是python中使用matplotlib绘制热力图的详细内容,更多关于python matplotlib热力图的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文