Python绘图可视化——Matplotlib实现

《Python绘图可视化——Matplotlib实现》简介

Python有许多可视化工具,本文只介绍Matplotlib库。Matplotlib是一种2D的绘图库,可支持硬拷贝和跨系统的交互。它可以在python脚本、IPython(Jupyter)的交互环境下、Web应用程序中使用。当初的目的是为Python构建一个MATLAB式的绘图接口。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量和光栅图:PDF、SVG、JPG、PNG、BMP、GIF等。

Matplotlib程序包

俗话说的好,“一图胜千言”,我们需要通过可视化的方式查看、分析数据,虽然pandas也有一些绘图的操作,但是相比较而言,Matplotlib在绘图显示效果方面更加绚丽。 Pyplot 为Matplotlib提供了一个方便的接口。我们可以导入Matplotlib库进行简单的操作。

输出如下图形:

《Python绘图可视化——Matplotlib实现》

绘图命令及属性设置

在上面的例子中,我们使用的基本上是默认的属性和绘图框架。现在我们来看 Pyplot 绘图的基本框架是什么,与Photoshop一样,作图时要先定义一张画布,此处的画布就是Figure,然后在画布上添加其他的素材。

创建子图和设置属性

代码如下:

使用关键字参数可以指定绘制的曲线的各种属性:

  • label:给曲线一个标签名称,可以在图例中方便显示,如果标签字符串前后有字符 $ 围住,则表示使用内嵌的LaTex引擎将其显示为特定的数学公式;
  • color:指定曲线颜色,可以使用十六进制数或者以0-1的RGB表示,比如‘#ff0000’(1.0, 0.0, 0.0)
  • linewidth:曲线的线宽,也可以使用缩写形式 lw 。

最终得到如下图:

《Python绘图可视化——Matplotlib实现》

创建多个子图

如果需要同时绘制多个图表,可以给Figure传递一个整数参数指定图表的序号,也就是每张画布的序号。如果指定序号的画布已经存在,将会让它成为当前的绘图对象。来看实例代码:

在这里指定了在Figure2上进行绘图操作。得到如下图:

《Python绘图可视化——Matplotlib实现》

事实上,我们可以很随意的拆分得到各种想要的子图,比如:

在Figure5上我们随意的拆分了几个区域,最后通过 subplots_adjust() 函数调整绘图在画布上的分布。最后得到如下图:

《Python绘图可视化——Matplotlib实现》

通过Axes对象设置属性

上面的例子是在Figure上绘制图案,但是当我们绘图较多,需要精调每张小图的时候,就要用到Axes对象。具体代码如下:

subplots() 函数能够批量创建多个子图区域,返回画布 fig 和包含所有子坐标轴的 axes 对象。得到如下图:

《Python绘图可视化——Matplotlib实现》

或者我们可以精调每张子图的属性,代码如下:

在这里设置它们的title,并删除横纵坐标。通过遍历axes的 flat 属性,依次 set 去除坐标。最终得到如下图:

《Python绘图可视化——Matplotlib实现》

实际上,plot操作的底层操作就是Axes对象的操作,只不过如果我们不用Axes而只用plot,它默认的是 plot.subplot(111) ,也就是说plot其实是Axes的特例。

保存Figure对象

最后一项操作是保存图片,此时需要使用 savefig() 函数。具体代码如下:

dpi 参数控制保存的像素,值越大,内存消耗越大。

总结

除了上述的基本操作以外,Matplotlib还有其他更高级的方法作图。此处只是简单介绍它在绘图时需要注意的事项。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

15 − 10 =