机器学习之数据可视化工具

标题

matploylib

基本介绍

figure和subplot

线图

散点图和直方图

图表装饰项

3维散点图

pandas中的绘图函数

参数

Matplotlib是一个Python2D绘图库,可以在各种平台上以各种硬拷贝格式和交互式环境生成出版质量数据。Matplotlib可用于Python脚本,PythonIPython shelljupyter笔记本,Web应用程序服务器和四个图形用户界面工具。我们一般会用以下方法引入Matplotlib

figure和subplot

matploylib画板一般由一下部分组成

figurematplotlib的图像都位于Figure对象中,你可以用一下方式去创建一个新的Figure,在使用ipython的时候,会弹出一个空窗口,其他情况下,必须在画板上画点什么在调用plt.show()才能出现画板

上面代码中,第一参数是传给窗口一个id,如果存在则使其活跃,否则就创建并返回它。并且figure还可以接受一个元组来设置画板大小。

我们不能对空Figure绘图,必须用add_subplot创建一个或多个subplot才行。

ax1为例前两个参数表示把一个画板分割成2x21表示分割成4个格子中的第一个。其他同理。

上图就是创建的subplot,第一行的分别是ax1ax3,第二行的是ax2。如果这时你发出绘图指令,matplotlib这时就会在你最后一个用过的subplot中(没有则创建)绘制。

默认情况下在subplot外围会留下一下边距,使用一下方法可以调整这些间隔,但是有可能会导致坐标轴的标签重叠。

上面的代码会把所有的间距都去掉

线图

由于最后创建的是ax3,因此线图会在ax3上绘制

其中plot表示画的是线图,'k--'表示画黑色虚线图。k表示黑色,--表示虚线,你也可以更明确的给linestylecolor传入参数,有关于linestyle的种类,官方文档给了详细的说名,color不仅接受英文,也可以用16进制字符串、RGB或RGBA元祖来指定颜色。线图可以接受两个数组分别代表坐标X和坐标Y,,当然你也可以直接输入一个数组表示Y,那么元素在数组的索引会变成你的X坐标。并且我们可以设置线条的样式,例如用线条的形状或者是颜色。

散点图和直方图

当然我们也可以直接用subplot的引用去在对应的位置画图。

scatter是散点图,接受两个数组作为xy坐标,scatter这里还可以指定点的形状和颜色。alpha表示的是点的透明度。

hist是直方图他接受一个数组作为数据,bins表示直方图的总个数,个数越多,条形带越紧密。

除此以外matplotlib还有很多种图,例如饼图、条形图、矢量场等等,这些图的绘制可以参考官方文档。

图表装饰项

一个图表除了我们要绘制的图像外,还需要有标签、坐标轴、图例等装饰。以下是常用api,调用是分带参数和不带参数两种:

不带参数:则返回当前参数值

带参数:设置参数值

api

说明

xlim

获取或设置当前轴的x范围

xticks

获取或设置当前刻度位置和标签的xlimit

xlabel

设置当前轴的x轴标签

xscale

设置x轴的缩放比例

对y轴的相关方法同理。

我们可以在创建绘图函数中的传入label参数,然后调用ax.legend()plt.legend()自动创建图例。legend有一个参数loc一般令loc=‘best’即可,它会自动选择最不碍事的位置。

除了图例以外,我们有时还需要去绘制一些自定的注解(文本、箭头或其他图形)

我们可以使用.text绘制标签

需要传入标签显示的坐标以及,字符串,可选的有标签的样式。

具体样式可以在官方文档中查看

3维散点图的绘制

三维图像的绘制过程如下

以上代码就可创建一个三维工程,接下来的绘图和二维类似,因为是三维因此绘图需要传入xyz坐标即可。

例如以上代码就可以在三维坐标上绘制四个点。

pandas中的绘图函数

pandas中的SeriesDataFrame都有生成各类图表的plot方法,默认生成线图。在绘制过程中Series对象的索引会变为X轴,但你可以通过use_index = False去禁用该功能。

参数介绍

pandas绘图有很多和matplotlib一样的设置样式的参数,除此以外,pandas的绘图参数还有

参数

说明

ax

指定要在其上进行绘制的subplot对象

use_index

将对象索引用作刻度的标签

logy

Y轴使用对数标尺

kind

图的类型:'line'、'bar'、'barh'、'kde'

grib

和plt.grid()一样显示网格,默认打开

还有专用于DataFrame的参数

参数

说明

subplots

将DataFrame各个列绘制到单独的subplot

sharex

subplots =True,则公用一个X轴

sharey

和sharex同理

figsize

设置图像大小的元祖

title

图像标题字符串

legend

添加图例,默认为True

sort_columns

按字母顺序绘制顺序,默认使用当前列顺序

线图

密度图

直方图

垂直的直方图

小结

matploylib的使用方法很简单,有什么参数不懂的可以去官方文档查看即可。在机器学习中由于数据维度很高一般是没办法绘制出样本点的分布,因此将样本点降至三维,在空间中查看样本点的分布。总而言之,matploylib是一个非常强大的数据可视化工具,它还有很多功能引用没有在本文中介绍,有兴趣的朋友可以自行去学习。

参考资料

《利用Python进行数据分析》 机械工业出版社 WesMcKinney著 唐学韬等译

以及晚上各位大佬的博文

AI遇见机器学习

mltoai

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180125G0XV2W00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区