Pandas DataFrame热力图制作

Pandas DataFrame热力图制作

在本文中,我们将介绍如何使用Pandas DataFrame制作热力图,热力图是用颜色渐变的方式来展示数据分布的一种常用可视化工具。

阅读更多:Pandas 教程

Pandas DataFrame格式要求

制作热力图需要准备一个符合格式要求的Pandas DataFrame数据:

  • 行列名称:可根据具体需求为DataFrame的行列名称进行命名
  • 数值数据:必须是可处理为数值类型的数据

接下来,我们将通过下面的代码创建一个包含5个城市,3种气象数据的DataFrame:

import pandas as pd
import numpy as np

city = ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu']
data = np.random.rand(5, 3) * 100
df = pd.DataFrame(data, columns=['temp', 'humidity', 'pressure'], index=city)
print(df)
Python

输出结果如下:

                temp   humidity  pressure
Beijing    20.613260  18.635190  6.911586
Shanghai   85.275222  90.086730  67.491592
Guangzhou  90.044952   7.116220  95.579838
Shenzhen   27.445025  90.633246  99.197376
Chengdu    25.007299  90.279773  92.971441
Python

其中,行列分别为5个城市和3种气象数据。

使用seaborn绘制热力图

接下来我们将介绍如何使用seaborn绘制使得数据可视化的热力图。

首先,需要安装seaborn,安装方式如下:

pip install seaborn
Python

下面的代码展示了如何使用seaborn将df中的数据绘制成热力图:

import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(df, annot=True, fmt='.2f', cmap='YlGnBu')
plt.show()
Python

我们可以看到5个城市中3种气象数据的分布情况。从颜色深浅可以更加清楚地看到数据的差异,同时通过注释可以更清晰地看到具体的数据值。

手动绘制热力图

如果上述方法不能满足要求或者需要进行更复杂的定制,我们也可以手动绘制热力图。

下面是一个绘制类似于上述seaborn的示例:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
im = ax.imshow(df, cmap='YlGnBu')

ax.set_xticks(np.arange(len(df.columns)))
ax.set_yticks(np.arange(len(df.index)))
ax.set_xticklabels(df.columns)
ax.set_yticklabels(df.index)

for i in range(len(df.index)):
    for j in range(len(df.columns)):
        text = ax.text(j, i, f'{df.iloc[i, j]:.2f}', ha='center', va='center', color='w')

ax.set_title('City Temperature')
fig.tight_layout()
plt.show()
Python

该方法的可定制化性很高,如需要修改颜色、字体等均可以通过修改代码来进行实现。

总结

本文介绍了如何使用Pandas来制作热力图,包括制作热力图的DataFrame格式要求以及在实际中如何使用seaborn或者手动绘制热力图。

热力图是了解统计数据分布情况的重要方法,可以结合其他的分析方法一起来进行数据的可视化,以此来更加深入地了解数据。希望本文能够对大家有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册