文章目录(Table of Contents)
简介
这一篇文章主要会讲关于矩阵的可视化, 有的时候我们求了相关系数矩阵等, 当变量比较多的时候, 直接看数值的大小就不是很直观, 这个时候将其可视化就会很直观.
注意: 当出现负数的时候, 我们可以将其平方或是求绝对值, 这样可以体现出大小的关系.
下面是两个参考的链接.
- 关于矩阵可视化, 其实是有一个具体的例子就是混淆矩阵的可视化, 这个可以参考这个链接: 混淆矩阵的绘制(Plot a confusion matrix)
- 关于Seaborn的介绍, 数据处理之可视化之Seaborn
这里我们除了看一下矩阵的可视化, 还可以看一下如何使用Seaborn来添加label, 或是改变label字体的大小, 设置标题等操作.
一个具体的例子
我们看一个具体的例子. 下面这个例子是在计算因子分析的时候得到的结果, 我们想要看隐变量主要和哪些观测变量有关, 我们会求得一个矩阵, 如下所示:
我们直接看这个是不直观的, 无法知道哪些大哪些小, 于是我们要将其可视化, 我们使用下面的方式进行可视化.
- df_cm = pd.DataFrame(np.abs(fa.loadings_), index=df.columns)
- plt.figure(figsize = (14,14))
- ax = sns.heatmap(df_cm, annot=True, cmap="BuPu")
- # 设置y轴的字体的大小
- ax.yaxis.set_tick_params(labelsize=15)
- plt.title('Factor Analysis', fontsize='xx-large')
- # Set y-axis label
- plt.ylabel('Sepal Width', fontsize='xx-large')
- plt.savefig('factorAnalysis.png', dpi=500)
得到了下面的效果, 可以看到这样的结果还是可以的. 可以看到每一个隐变量分别对应的变量.
保留小数
在进行矩阵可视化的时候, 有的时候我们只需要保留自己需要的小数, 如果位数太多反而会有进行重叠. 所以我们需要使用fmt='.1f'来进行调节.
ticks进行旋转
有的时候我们需要旋转x或是y轴上的内容, 来是的其可以完整的放下我们需要的内容. 我们使用下面的方式来进行旋转, 可以自己调节旋转的角度
- plt.yticks(rotation=0)
我们最后在给出一个完整的代码, 这个是绘制相关系数矩阵的可视化的代码:
- # 绘制相关系数矩阵
- plt.figure(figsize = (10,10))
- ax = sns.heatmap(data.corr(), annot=True, fmt='.1f', cmap="BuPu") # fmt表示保留的小数点
- # 设置y轴的字体的大小
- plt.yticks(rotation=0) # 让y轴的字进行旋转
- # ax.yaxis.set_tick_params(labelsize=15)
- plt.title('Correlations for Dataset', fontsize='xx-large')
最后的效果图可以是如下所示的结果:
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论