机器学习实战笔记二——matplotlib绘图
因人之力而敝之,不仁。失其所与,不知。以乱易整,不武。——古文观止 · 烛之武退秦师
在学习机器学习书籍时,一般都推荐python,matlab或者octave首先来做算法实现。
在Python中,涉及到一个非常好用的绘图库就是matplotlib。
今天我们来介绍一个matplotlib的基本操作。
基础演示
首先我们看一个基本的样例:
1 | import numpy as np |
运行结果如下图所示:
上述代码是Matplotlib与numpy库一起使用的一个基础样例。
下面列举几个Matplotlib中常用的函数以及基础的使用样例。
plot函数
plot函数调用有两种形式,我们可以通过help命令查看:
1 | plot([x], y, [fmt], data=None, **kwargs) |
其中中括号扩起来的部分表示可选参数。
其中, fmt表示线/点的样式,包括颜色,点型,线型。fmt = ‘[颜色] [点型] [线型]’,例如plot(x, y, 'b+-')
表示绘制蓝色+号实线图,如下所示:
也可以按照如下代码编写:
1 | plt.plot(x, y, color='blue', marker='+', linestyle='-') |
这一句的效果与上面的plot(x, y, 'b+-')
是一样的,其他可添加的属性还包括:
线条宽度:linewidth, 点标记大小:markersize,其他相关属性可参考:line2D
subplot函数
见字知意,该函数表示向现有图形窗口中添加子图。来看示例:
1 | subplot(nrows, ncols, index, **kwargs) |
其中的参数分别表示子图在整个图形窗口网格中的位置与索引。
如下代码所示:
1 | import numpy as np |
输出结果如下所示:
其中,可以看到,通过nrows与ncols将整个视窗划分为nrows*ncols
的网格,然后通过index
按照从左到右,从上到下的次序依次补充图形。当然,图形并不总是相同的,还可以进行如下的绘制:
scatter 散点图
1 | matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs) |
这个函数需要引起重视,为什么呢?
因为在机器学习中,我们常常需要查看原始数据的分布情况,得出一个初步的结论,这是就会用到散点图了。
散点图scatter各个参数的具体含义可以参考链接。
其他常用函数:
函数 | 含义 |
---|---|
pyplot.bar | 柱状图 |
pyplot.pie | 饼图 |