多起村干部被灭门案,需要反思了!

高铁打人者身份被曝光,人脉资源碾压普通人!却遇到了硬茬

OPPO芯片业务解散不一定是坏事

明确了!任期届满后,他不再寻求连任!

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

pandas数据可视化 | 第11期

青衣极客 青衣极客 2020-01-06

      在使用pandas进行数据处理或者分析的时候,常常会有将数据转换成图的可视化需求。图像能够更加直观表现数据特点,也更容易帮助数据分析师捕获数据特性从而建立更加合适的模型。之前我写了一篇文章讲述使用matplotlib来进行数据可视化的基本操作,虽然也可以使用pandas与matplotlib结合来进行可视化,但是终究还是太麻烦。那么有没有一种简洁的方式,或者已经封装好的第三方工具可以直接使用的呢?本文就是讨论解决这个问题的。

      直接对pandas的基础数据结构DataFrame进行可视化需要安装一款第三方库cufflinks,直接使用 pip3 install cufflinks 即可安装上。在安装安成这款工具之后,会同时安装plotly模块。模块安装完毕之后就可以进行pandas数据可视化的实验了。本文是在学习了一篇英文帖子之后写成的,喜欢阅读英文描述的朋友可以从链接(https://towardsdatascience.com/7-things-to-quickly-improve-your-data-analysis-in-python-3d434243da7)进入。

1. 普通的曲线图

      我们先生成一个3列100行的数据表,并给每一列命名。然后直接调用plot函数就可以得到曲线图。该曲线图的横轴为行索引,纵轴为每列数据数值的累加,并且将列名设置为图例。

import pandas as pdimport numpy as np
data = np.random.randn(100, 3)col_names = ['data_1', 'data_2', 'data_3']# 由于随机数据曲线过于杂乱,这里进行一下累加df = pd.DataFrame(data, columns=col_names).cumsum()# 直接绘制DataFrame的数据列df.plot()

Outout:

     这种简便的操作实际上内部也是使用matplotlib完成的,只是我们并不需要关心。使用这种方式可以非常直观地查看数据表中每一列数值的具体情况。在日常使用中,这种功能也是很贴心,让数据分析师省去了很多的麻烦。既可以提高效率,又比较美观,何乐不为!

2. 交互式曲线图

      虽然直接将pandas数据画到图片上比较简单,但是还有一些需要改善的地方,比如交互式。由于需要分析的表格中实际数据的数值范围可能存在很大的差异,如果将这些数据在同一个坐标图中绘制出来就会使得每一列数据的特征都不太明显,这时我们需要一种简单高效的交互式手段可以临时屏蔽一些列。除此之外,当然还有一些保存、缩放和移动图像等等需求。通过cufflinks模块可以实现这种交互式需求,在导入模块后调用go_offline()函数,然后调用DataFrame的iplot()函数即可。关于cufflinks更加详细的描述可以到其官网查看和学习。

3. 散点矩阵图

     如果需要查看每一列数据数值的分布情况,那么可以调用scatter_matrix()函数完成。这个函数会以直方图和散点图两种方式来描述不同区间的数值分布,这对于需要掌握数据分布情况的朋友来说是一个很不错的功能。

        到此,关于pandas数据可视化就讨论完毕。看到这款工具的强大之后,大家会更有尝试的动力。


github链接:https://github.com/cnbluegeek/notebook/tree/master

欢迎对python和人工智能感兴趣的朋友加入微信群讨论和交流:


    文章有问题?点此查看未经处理的缓存