在数据挖掘的整个流程里,可视化工具绝对是绕不开的关键一环。它能直观地呈现数据的内在规律,帮你快速锁定分析方向,进而调整后续的方法策略。下面就从最常用的 Matplotlib 说起。

简单的 Matplotlib 画图
要上手 Matplotlib,最核心的模块就是 matplotlib.pyplot。通常我们把它简写为 plt,方便反复调用。
画图其实有一套标准流程:先准备数据,再创建画布,接着添加绘图元素,然后自定义样式,最后保存或展示。下面这段代码就把这六步走了一遍:

图形绘制流程
创建画布
画布是一切的基础。通过 plt.figure() 可以指定图的大小和清晰度。参数说明很直白:
举个例子,创建一个 4 英寸宽、2 英寸高、300 dpi 的图:


绘制图像
画图时最常用的是 plt.plot()。它能一次性设定线型、颜色、标记样式。比如下面这一行,就同时指定了绿色虚线、圆点标记、8 号大小、黄色填充、2 号线宽:

线型、标记、颜色、宽度、标记大小——这些参数都可以灵活组合。来看几个独立的例子:
线型和标记

线条颜色

线条宽度

标记大小和颜色

marker='o' 设置数据点的标记为圆形。markersize=10 设置标记的大小。markerfacecolor='red' 设置标记的填充颜色为红色。markeredgecolor='black' 设置标记的边框颜色为黑色。
标签

显示图像
画完之后别忘了显示图例和图像:

综合举例
把上面的知识串起来,一个完整的例子长这样:



图形添加辅助功能
为了更好地理解基础绘图功能,我们用一个真实场景来演练:画出某城市 11 点到 12 点之间每分钟的温度变化折线图,温度范围 15~18 度。
准备数据并画出初始折线图

添加自定义 x、y 刻度
默认刻度往往不够人性化,我们需要自己定义。通过 plt.xticks() 和 plt.yticks() 可以分别设置刻度的标签和位置。

中文显示问题解决
Matplotlib 默认中文显示容易出乱码,需要设置中文字体:

添加网格显示
网格线能让数据对应的值更清晰:

添加描述信息
加上 x 轴、y 轴描述信息和标题,图表才算完整:
通过 fontsize 参数可以修改图像中字体的大小

图像保存

注意:plt.show() 会释放 figure 资源,如果在显示图像之后保存图片,将只能保存空图片。所以保存操作要放在 show 之前。
下面是完整的温度变化图代码:



绘制其它类型的图像
绘制折线图



绘制函数曲线
用 numpy 生成数据,画出正弦曲线:



x1 中保存的是为显示 sin 曲线而生成的从 -5 到 5 的 101 个数据。y1 中保存的是使用 NumPy 的 sin 函数生成的数据。
绘制散点图



x2 中保存的是元素为“从 0 到 99 的整数”的数组。y2 中保存的是元素为“在从 0 到 1 的范围内随机选出的 100 个数据”的数组与 x2 相乘的结果。
绘制直方图



绘制柱状图



绘制箱形图


Matplotlib 的使用


下面用红酒数据集做个可视化示范。加载数据后,把酒精度(索引 0)和色泽(索引 9)提取出来,分别作为 x 和 y,画出散点图:



再把色泽列画出直方图看看分布:




