不能马上让人上手matplotlib的教程,就是我这个pythoner耍流氓!

Python与机器学习 徐 自远 465℃

不能马上让人上手matplotlib的教程,就是我这个pythoner耍流氓!

编程梦工厂 2018-10-29 14:52:10

私信小编007即可自动获取大量Python视频教程以及各类PDF!

首先,不能马上让人上手的教程,就是耍流氓。

我们都知道,matplotlib是Python下一个极其强大的作图库。但是它虽然强大,却有着陡峭的学习曲线,想要用它来灵活地作图需要花费大量的学习时间,这也是为什么近年来基于matplotlib封装的Seaborn等作图库迅速流行起来的原因。

我们希望能迅速上手一个工具并画出美观而有说服力、有解释力的图形,而不是花费大量的时间却仍然飘在云里雾里。

matplotlib有两种语言风格,一种是沿袭自MatLab的命令式风格,一种是Python的面向对象风格。不同的作图风格有时会让我们感到混乱,这也在无形中增加了我们的学习难度。不过我们今天不是来讨论风格优劣的,我们今天的目的是熟悉matplotlib的基本作图函数,以达到快速上手Python可视化的目的。

今天,我们先抛却又臭又长的官方文档,抛却庞大的作图知识体系,尝试在30分钟内掌握基本的作图能力。

我们先从最常用的作图函数以及样式调整函数学起,其他的让它们先玩儿去吧。

1. plot()

plot()函数包含了很多基础的绘图功能,这里我们用它来绘制线图,用以展现数据的变化趋势。

2. scatter()

scatter()函数用以绘制散点图,我们常用它来观察变量间的相关性。

3. xlim() / ylim()

这两个函数用于设置坐标轴的数值显示范围。

可以看到,虽然我们数据的范围是x ∈ [0, 10], y ∈ [0, 1],但在我们的强烈要求下,图片上只展示出了其中的一部分。

4. xlabel() / ylabel()

顾名思义,这两个函数用于设置坐标轴的标签。

5. grid()

就喜欢这么直白的命名,grid()函数正是用于设置图形中的网格线。

啊,好丑。

6. axhline() / axvline()

ax ~ axis

h ~ horizontal,水平的

v ~ vertical,垂直的

组合起来看,我们可以猜到,这两个函数分别用于设置水平参考线和垂直参考线。

7. axhspan() / axvspan()

ax ~ axis

h ~ horizontal,水平的

v ~ vertical,垂直的

span ~ 跨度,区间,范围

这两个函数分别用于设置平行于x轴/y轴的参考区域。

8. annotate()

这个函数就是为了在图形中添加指向性注释文本,为了能灵活调整注释的位置以及指示箭头的样式,这个函数提供了丰富的可选参数,想要熟练使用这一函数需要我们花一些功夫去探索。

可以看到,我们为(π/2, -1)位置的最低点加了一个“minimum”的红色文本注释,这里边我们用到了以下的配置项,它们的含义是:

xy: 指示点的坐标,即我们希望注释箭头指向的点的坐标

xytext: 注释文本左端的坐标(不是文本中心的坐标)

weight: 注释文本的字体粗细风格,bold是粗体,正常粗细则用regular

color: 注释文本的颜色

arrowprops: arrow + props(properties),箭头属性,字典格式

arrowstyle: 箭头类型

connectionstyle: 连接类型

color: 箭头颜色

更多的参数大家可以查阅文档,里边有详细的介绍。至于查阅文档,为大家推荐一个软件,在Mac下有一个叫Dash的软件,简直是文档查阅神器,在Linux和Windows下有一个叫Zeal的替代软件。强烈推荐没用过的同学体验下。

9. text()

这个函数同样是用于图形中的注释,但它跟annotate()的区别是它用于添加无指向性注释文本,也就是不带指向性箭头的文本注释。

由于没有了箭头,我们就不需要那个字典参数了,同时坐标等参数都更直接地使用x、y等来表达。我们使用fontsize参数设置了注释文本的大小。

10. title()

这个函数最简单,就是用于设置图形的标题。

11. 小挑战

在最后,我们用一个小挑战来回顾下之前的内容:

可以看到,我们配置了很多小细节,是不是很有成就感?

没错,matplotlib就是这么强大,这还仅仅是它的冰山一角呢!

好了,以上就是用来作图以及调整图形样式的十来个常用的函数。

 

不能马上让人上手matplotlib的教程,就是我这个pythoner耍流氓!http://t.jinritoutiao.js.cn/RD8HYE/

转载请注明:徐自远的乱七八糟小站 » 不能马上让人上手matplotlib的教程,就是我这个pythoner耍流氓!

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号