第一时间关注Python技术干货!
Python在数据分析领域有一个很完备的生态系统,在数据处理方面有 Pandas,在数据可视化方面有 matplotlib,在数据爬取方面有 Scrapy(或者不用框架),在数据挖掘方面有 Scikit-learn等等。
最近这几篇文章,就先来讲讲,比较酷炫的数据可视化,相信你学完之后一定会有满满的成就感。
matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形。Python 科学计算社区经常使用它完成数据可视化的工作。它几乎可以画出你所能想到各种有逼格,文艺的,高雅的图形。
学习 matplotlib 最好的途径是 官网(http://matplotlib.org/),以下内容都是本人从官网上一点一点消化总结出来的,都是精华提炼。希望你看完也能有所收获。
1. 使用工具
在上一篇文章中,小明首先讲了一个工具,以后文章里的所有操作都将在这里面实现,还没有阅读的小伙伴,记得先去学习下:
为什么会推荐使用这个工具呢?除了上一篇文章中提到的之外,还有一个原因。
你在一些早期的文章中,可能会看到如下,两种语句,
将这两个命令放在你绘图代码前面,它可以在绘图时,将图片内嵌在交互窗口,而不是弹出一个图片窗口(体验感超差有木有)。在这两种模式下,是只要有plt出现,图片会立马show出来(所以可以不用显式的plt.show())。这大概也就是很多人也在使用这个工具的缘故吧(我猜的)
但是,这也有一个缺陷:除非将代码一次执行,否则,无法叠加绘图。这个在我看来并不算是缺点。
正是由于现在的你可能不知道它们有啥用。不过不要紧,现在你可以完全忽视上面这两个语句,因为现在使用 Jupyter NoteBook 已经不再需要指定这两种语句了。
2. 两种方式
在网上有些教程文章,画图使用的是 pylab,而有些使用的是 pyplot。这是常见的两种
那么pyplot和pylab有什么区别呢?
matplotlib,大家都很清楚,是整个包的名字。而 pyplot 和 pyplab 都是 matplotlib 中的一个模块; pyplot是一个提供了面向对象的底层状态机接口的绘图库
而 pylab 在官网上,有这样一段话:
pylab is a convenience module that bulk imports matplotlib.pyplot (for plotting) and numpy (for mathematics and working with arrays) in a single name space. Although many examples use pylab, it is no longer recommended.
它的内部其实已经导入了 pyplot 和 numpy 。其实我暂时并不知道它有什么弊端,但是最后一句,给我们提了一个醒,它上面说 pylab 已经不再推荐使用了。所以你如果是一个初学者,在网上看到 pylab 的教程文章,那么你可以跳过不学。所以下面的教程,我都将使用 pyplot。
3. 图表的基本元素
前两天的官网上闲逛的时候,发现了一张图,可以说把一个图表该有的元素都很好的展示出来了。从这张图入手,一点一点地实现这里面的每个元素,我们也算是入门了matplotlib了。这里面的大部分元素,我相信会点英文的你都能很轻松的理解。
唯独有这两个概念,我要在这里强调一下,就是 aixs 和 axes 的区别:
:可以认为是两个轴,他可以设置轴的大小限制,set_xlim() ,set_ylim() ,还有设置刻度 ticks(由Locator对象定义),还有ticklabel(由Formatter对象定义)等
:可以认为是axis的复数,是多个axis组成的。在二维图里,就是两个axis组成,在三D图里,就是三个axis组成。所以你可以粗浅的理解为一个图表就是一个axes,他们可以设置 标题:set_title(),标签:set_xlabel(),set_ylabel()等
4. 画个简单的图
学习完了如上的一些基本元素,我们来学习如何一点一点实现它?
以下的代码都在 NoteBook单元格里运行,后面不再赘述。
以上的注释,可以说是很直白啦。一张图表该有的东西都有了,不花哨,但实用。
看看用我们的代码输出的图表是啥样的?
你的第一张图表
-END-
本文的数据可视化第一课,到这里就结束了。觉得有用的,还请点赞转发支持一下。
领取专属 10元无门槛券
私享最新 技术干货