在使用pandas进行数据处理或者分析的时候,常常会有将数据转换成图的可视化需求。图像能够更加直观得表现数据特点,也更容易帮助数据分析师捕获数据特性从而建立更加合适的模型。之前我写了一篇文章讲述使用matplotlib来进行数据可视化的基本操作,虽然也可以使用pandas与matplotlib结合来进行可视化,但是终究还是太麻烦。那么有没有一种简洁的方式,或者已经封装好的第三方工具可以直接使用的呢?本文就是讨论解决这个问题的。
直接对pandas的基础数据结构DataFrame进行可视化需要安装一款第三方库cufflinks,直接使用 pip3 install cufflinks 即可安装上。在安装安成这款工具之后,会同时安装plotly模块。模块安装完毕之后就可以进行pandas数据可视化的实验了。本文是在学习了一篇英文帖子之后写成的,喜欢阅读英文描述的朋友可以从本文结尾处链接进入。
1. 普通的曲线图
我们先生成一个3列100行的数据表,并给每一列命名。然后直接调用plot函数就可以得到曲线图。该曲线图的横轴为行索引,纵轴为每列数据数值的累加,并且将列名设置为图例。
这种简便的操作实际上内部也是使用matplotlib完成的,只是我们并不需要关心。使用这种方式可以非常直观地查看数据表中每一列数值的具体情况。在日常使用中,这种功能也是很贴心,让数据分析师省去了很多的麻烦。既可以提高效率,又比较美观,何乐不为!
2. 交互式曲线图
虽然直接将pandas数据画到图片上比较简单,但是还有一些需要改善的地方,比如交互式。由于需要分析的表格中实际数据的数值范围可能存在很大的差异,如果将这些数据在同一个坐标图中绘制出来就会使得每一列数据的特征都不太明显,这时我们需要一种简单高效的交互式手段可以临时屏蔽一些列。除此之外,当然还有一些保存、缩放和移动图像等等需求。通过cufflinks模块可以实现这种交互式需求,在导入模块后调用go_offline()函数,然后调用DataFrame的iplot()函数即可。关于cufflinks更加详细的描述可以到其官网查看和学习。
3. 散点矩阵图
如果需要查看每一列数据数值的分布情况,那么可以调用scatter_matrix()函数完成。这个函数会以直方图和散点图两种方式来描述不同区间的数值分布,这对于需要掌握数据分布情况的朋友来说是一个很不错的功能。
到此,关于pandas数据可视化就讨论完毕。本文参考的英文网站链接如下:https://towardsdatascience.com/7-things-to-quickly-improve-your-data-analysis-in-python-3d434243da7 ,对英文描述感兴趣的朋友可以浏览这个链接。本文的notebook文件在github上cnbluegeek/notebook仓库共享,感兴趣的朋友可以前往下载。