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);
如果您的主要目标是可视化相关矩阵,而不是创建一个图本身,那么方便的
pandas
styling options是一个可行的内置解决方案:注意,这需要在支持呈现HTML的后端,比如JupyterLab笔记本。(深色背景上的自动亮文本来自现有的PR,而不是最新发布的版本,
pandas
0.23)。造型
您可以轻松限制数字精度:
或者,如果您更喜欢不带注释的矩阵,请完全去掉这些数字:
样式文档还包括更高级样式的说明,例如如何更改鼠标指针悬停在其上的单元格的显示。要保存输出,可以通过附加
render()
方法返回HTML,然后将其写入文件(或者只为不太正式的目的截图)。时间比较
在我的测试中,
style.background_gradient()
比plt.matshow()
快4倍,比sns.heatmap()
快120倍,矩阵为10x10。不幸的是,它的伸缩性不如plt.matshow()
好:对于100x100矩阵,这两种方法花费的时间差不多,而对于1000x1000矩阵,plt.matshow()
则要快10倍。保存
有几种可能的方法可以保存样式化的数据帧:
render()
方法返回HTML,然后将输出写入文件。to_excel()
方法,保存为具有条件格式的.xslx
文件。熊猫更新>;=0.24
通过设置
axis=None
,现在可以根据整个矩阵而不是每列或每行计算颜色:尝试此函数,它还显示相关矩阵的变量名:
可以使用} :
matplotlib
中的^{编辑:
在评论中有一个关于如何更改轴刻度标签的请求。这是一个豪华版,绘制在一个更大的数字大小,有轴标签,以匹配数据帧,和一个颜色条图例,以解释颜色比例。
我将介绍如何调整标签的大小和旋转,并使用一个数字比例,使颜色栏和主图形的高度相同。
相关问题 更多 >
编程相关推荐