python - 使用 pandas 绘制相关矩阵

我有一个包含大量特征的数据集,因此分析相关矩阵变得非常困难。我想绘制一个相关矩阵,我们使用 pandas 库中的 dataframe.corr() 函数获得该矩阵。 pandas 库是否提供了任何内置函数来绘制此矩阵?

最佳答案

您可以使用 pyplot.matshow()来自 matplotlib:

import matplotlib.pyplot as plt

plt.matshow(dataframe.corr())
plt.show()

编辑:

评论中有关于如何更改轴刻度标签的请求。这是一个在更大的图形尺寸上绘制的豪华版本,具有与数据框匹配的轴标签,以及用于解释色标的颜色条图例。

我将包括如何调整标签的大小和旋转,并且我使用了一个图形比例,使颜色条和主图形出现相同的高度。


编辑 2: 由于 df.corr() 方法忽略非数字列,在定义 x 和 y 标签时应使用 .select_dtypes(['number']) 以避免不必要的标签移位(包括在下面的代码中)。

f = plt.figure(figsize=(19, 15))
plt.matshow(df.corr(), fignum=f.number)
plt.xticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14, rotation=45)
plt.yticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14)
cb = plt.colorbar()
cb.ax.tick_params(labelsize=14)
plt.title('Correlation Matrix', fontsize=16);

https://stackoverflow.com/questions/29432629/

相关文章:

linux - 为什么人们使用 tarball?

python - 多处理。池 : What's the difference between map

linux - 如何在 bash shell 脚本中包含文件

python - 为什么 4*0.1 的浮点值在 Python 3 中看起来不错,但 3*0.1 不

linux - 如何在 Bash 中解析 CSV 文件?

python - 在 Python 中查找列表的中位数

javascript - 即使没有其他进程阻塞该端口,Node.js 应用程序也无法在端口 80 上

python - Pandas 用空白/空字符串替换 NaN

linux - 如何在命令行中合并图像?

linux - 如何在 bash 中检查文件是否创建时间超过 x 时间?