Python使用pandas读取CSV并绘制Pearson相关系数热力图

江岸
江岸
发布时间:2026-10-12 | 2人浏览过
原创

本文介绍如何利用Python的pandas库读取CSV文件数据,并结合matplotlib进行基础绘图。重点演示使用seaborn库绘制Pearson相关系数热力图,详细解析data.corr()计算相关性、sns.heatmap()绘制图表及annot参数控制数值显示的方法,同时说明对空值np.nan的支持情况。

如何利用pandas读取csv数据并绘图

首先需要导入常用的numpy和pandas库,以及用于绘图的matplotlib模块。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)

读取csv文件的数据,保存到numpy数组内

path_csv = "E:\\python\\python\\2021\\202104\\04091\\path_data.csv"
xa = np.array([42.0, 44.4, 43.1, 40.6])
ya = np.array([21.6, 21.2, 13.5, 14.0])
xa1 = np.array([10, 40])
ya1 = np.array([10, 40])
path_data_x = pd.read_csv(path_csv, header=None, usecols=[0])
path_data_y = pd.read_csv(path_csv, header=None, usecols=[1])
path_x = np.array(path_data_x)[:, 0]
path_y = np.array(path_data_y)[:, 0]

绘制图像

print(path_x[0])
print(path_y[0])
ax.plot(xa1, ya1, color='g', linestyle='', marker='.')
ax.plot(xa, ya, color='g', linestyle='-', marker='.')
ax.plot(path_x, path_y, color='m', linestyle='', marker='.')
plt.show()

展示结果

pandas画pearson相关系数热力图

pearson相关系数计算函数

  • data.corr()

该方法支持空值:np.nan

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
data = pd.DataFrame({"A":[np.nan,2,9], "B":[4,14,6], "c":[987,8,9]})
f, ax= plt.subplots(figsize = (14, 10))
corr = data.corr()
# print(corr)
sns.heatmap(corr,cmap='RdBu', linewidths = 0.05, ax = ax)
# 设置Axes的标题
ax.set_title('Correlation between features')
plt.show()
plt.close()
f.savefig('sns_style_origin.jpg', dpi=100, bbox_inches='tight')

其中heatmap()方法中有annot参数,默认为False,不显示每个颜色的数字,如果设置为:annot=True, 则在每个热力图上显示数字。

效果如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表