corrMatrix =zdf.corr()
corrMatrix.to_csv('sm_zscaled_correlation_matrix.csv');
html = corrMatrix.style.background_gradient(cmap='RdBu').set_precision(2).render()
# Writing the output to a html file.
with open('test.html', 'w') as f:
print('<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-widthinitial-scale=1.0"><title>Document</title></head><style>table{word-break: break-all;}</style><body>' + html+'</body></html>', file=f)
def plot_corr(df,size=10):
"""Function plots a graphical correlation matrix for each pair of columns in the dataframe.
Input:
df: pandas DataFrame
size: vertical and horizontal size of the plot
"""
corr = df.corr()
fig, ax = plt.subplots(figsize=(size, size))
ax.matshow(corr)
plt.xticks(range(len(corr.columns)), corr.columns)
plt.yticks(range(len(corr.columns)), corr.columns)
17条答案
按热度按时间rwqw0loc1#
您可以使用matplotlib中的imshow()方法
ylamdve62#
xhv8bpkk3#
请检查以下可读代码
snz8szmq4#
您可以使用海运中的
heatmap()
查看关联b/w不同功能:sg2wtvxw5#
我更喜欢使用Ploly,因为它是更具互动性的图表,更容易理解。您可以使用以下代码片段。
kqlmhetl6#
形成相关矩阵,在我的例子中,ZDF是我需要执行相关矩阵的 Dataframe 。
然后我们就可以截图了。或者将html转换为图像文件。
xcitsw887#
与其他方法一起,使用配对图也很好,它将给出所有情况的散点图-
x7yiwoj48#
统计模型图形还提供了关联矩阵的良好视图
ovfsdjhp9#
我认为有很多好的答案,但我将这个答案添加到那些需要处理特定专栏并展示不同情节的人。
q9rjltbz10#
您可以使用
matplotlib
中的pyplot.matshow()
:编辑:
在评论中,有一个关于如何更改轴刻度标签的请求。这是一个豪华版本,绘制在更大的图形尺寸上,具有与 Dataframe 匹配的轴标签,以及用于解释色标的色条图例。
我包括如何调整标签的大小和旋转,我使用了一个图形比例,使颜色条和主要图形出来的高度相同。
编辑2:由于df.corr()方法忽略非数字列,因此在定义x和y标签时应使用
.select_dtypes(['number'])
,以避免标签发生不必要的移动(包括在下面的代码中)。izkcnapc11#
如果您的 Dataframe 是
df
,则只需使用:yqyhoc1h12#
惊讶地发现,没有人提到更有能力、更具互动性和更容易使用的替代方案。
A)可以有情节地使用:
1.只需两行,您就会得到:
1.互动性,
1.平滑比例,
1.基于整个 Dataframe 而不是单个列的颜色,
1.轴上的列名和行索引,
1.放大,
1.平底锅,
1.内置的一键保存为PNG格式的能力,
1.弹性伸缩;
1.比较悬停,
1.显示数值的气泡,因此热图看起来仍然很好,您可以在任何您想要的地方看到数值:
B)也可以使用Bokeh:
所有相同的功能,但有一点麻烦。但是,如果你不想选择密谋加入,并且仍然想要所有这些东西,那么仍然值得一试:
mu0hgdu013#
为了完整起见,截至2019年末,我所知道的最简单的seaborn解决方案是,如果使用Jupyter:
ax6ht2ek14#
您可以通过从海运绘制热图或从Pandas绘制散布矩阵来观察特征之间的关系。
散点矩阵:
如果你也想可视化每个特征的偏斜度--使用海运配对图。
SNS热图:
输出将是要素的关联图。即,请参见下面的示例。
食品杂货和洗涤剂之间的相关性很高。类似地:
高度相关的产品:
1.杂货及洗涤剂。
关联度中等的产品:
1.牛奶和杂货
1.牛奶和洗涤剂_纸张
关联度较低的产品:
1.牛奶和熟食店
1.冷冻和新鲜。
1.冷冻和熟食。
从平面图:您可以从配对图或散点矩阵中观察到相同的关系集。但从这些我们可以判断数据是否服从正态分布。
注:上图是取自数据的相同图表,用于绘制热图。
euoag5mw15#
试试这个函数,它还会显示相关矩阵的变量名: