三、机器学习基础知识:Python常用机器学习库(Matplotlib)

文章目录

  • 1、Matplotlib
  • 2、基本结构
  • 3、pyplot模块
    • 3.1 pyplot.plot()函数的使用
    • 3.2 其他常见属性设置
    • 3.3 子图的绘制
  • 4、其他类型的图表
    • 4.1 竖向条形图
    • 4.2 散点图
    • 4.3 饼图

1、Matplotlib

matplotib库中有非常多的可视化绘图类,内部结构复杂。受 MATLAB 提供的绘图功能的启发,matplotlib提供了两个便捷的绘图子模块:pyplot 和pylab,其中pyplot模块提供了一套和MATLAB类似的绘图方法,这些方法把复杂的内部结构隐藏起来,通过简洁的绘图函数来实现不同的绘图功能;pylab 模块则包含了numpy库和pyplot模块中常用的一些函数,使用方法和 pyplot模块类似。
一般采用如下方式引入matplotlib库中的pyplot模块:

import matplotlib.pyplot as plt

2、基本结构

常见的绘图里面一般包含画布、图标题、x轴、y轴、绘图区、图例等基本元素,x轴和y轴中存在对应的刻度线和轴标题。
三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第1张图片

3、pyplot模块

matplotib中最常用的是pyplot模块,其内部包含绘制图形所需要的功能函数,常见的绘图函数如下所示。

函数 功能
figure() 创建一个空白画布,可以指定画布的大小和像素
subplot() 在绘图区域创建子绘图区域
plot() 基本绘图函数
title() 设置图表标题
xlabel() 设置x轴名称
yabel() 设置y轴名称
xlim() 指定x轴的刻度范围
ylim() 指定y轴的刻度范围
legend() 设置图例
savefig() 保存图像
show() 显示图像

绘图实例:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'  #字体设置
matplotlib.rcParams['axes.unicode_minus']=False  #设置符号显示正常
x = np.linspace(0,10, 100) #设置x的取值范围
y = np.cos(x)  #设置y的取值
plt.plot(x,y,"b")  #将x、y进行绘图,颜色为蓝色
plt.title("cos函数") #设置图标题
plt.xlabel('x') #设置x轴标签
plt.ylabel('y=cosx')  #设置y轴标签
plt.ylim(-1.5,1.5)  #设置y轴取值范围
plt.legend(labels=["y=cosx"])  #设置图例
plt.show()  #显示图像

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第2张图片

3.1 pyplot.plot()函数的使用

plot()是pyplot模块中最基本的一个绘图函数,其语法格式如下:

plot(x,y,s,linewidth)

其中x表示横坐标的取值范围,y表示与横坐标对应的纵坐标取值范围,s表示控制线型的格式字符串,linewidth表示线的宽度。
直线的绘制:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5])
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第3张图片

在上述绘图源码中plot函数中只有一个参数列表,则将此列表的每个元素作为y轴的取值,将每个元素的索引作为x取值。
plot()默认情况下绘制的图像是连续的,可以增加参数来控制点线的颜色、风格等,从而获得各种各样的图像。
常见的颜色字符:

字符 描述 字符 描述
r 红色 k 黑色
g 绿色 w 白色
b 蓝色 c 蓝绿色
y 黄色 m 品红色
#00FF11 RGB颜色模型对应的某种颜色

常见的点风格字符:

符号 描述 符号 描述
, 小的实心点 . 实心点
o 大的实心点 v 倒三角
^ 上三角 > 右三角
< 左三角 s 正方形
p 正五边形 h 垂直正六边形
H 水平正六边形 + 十字
x 叉号 d 菱形

常见的线风格字符:

符号 描述
- 实线
破折线
: 虚线
-. 点横线

风格点的绘制:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=x
plt.plot(x,y,"bs")
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第4张图片

风格线的绘制:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=x
plt.plot(x,y,"k--")
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第5张图片

此外plt()函数还支持在一张图纸上绘制多个图形。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y1=x
y2=x*2
plt.plot(x,y1,"bs",x,y2,"k--")
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第6张图片

3.2 其他常见属性设置

pyplot模块中常用的函数及其功能分别如下:

  1. axis()函数。该函数是获取或设置坐标轴属性的快捷方法,axis()函数在使用时可通过传递参数设置x、y轴的取值区间,也可以通过传递参数设置坐标轴是否显示,调用该函数会返回一个由x轴取值区间边界xmin、xmax和y轴取值区间边界值ymin、ymax组成的元组。
    一般axis()函数的使用方法有如下几种:
xmin,xmax,ymin,ymax = axis()  #返回当前坐标轴的区间信息
axis(xmin,xmax,ymin,ymax)  #设置新的坐标轴的区间信息
xmin,xmax,ymin,ymax = axis(option)  #设置坐标轴的状态等属性

其中option参数可以设置的内容及其作用如下:

描述
‘on’ 坐标轴和标签可见
‘off’ 坐标轴和标签不可见
‘equal’ 通过更改轴的的取值区间来设置相等的缩放比例
‘scaled’ 通过更改绘图框的尺寸来设置相等的缩放比例
‘tight’ 设置足够大的区间以显示所有数据
‘auto’ 自动缩放
‘image’ 坐标轴的取值范围根据数据范围进行缩放
‘square’ 方形图,类似’scaled’,但强制要求xmax-xmin = ymax-ymin
  1. xlim()函数。xlim()函数用于设置或者返回x轴的取值区间,可以通过传递参数直接设置,也可以通过调用函数返回取值区间进行设置。
    一般xlim()函数的使用方法有如下几种:
xmin,xmax=xlim()  #返回当前x轴的取值区间
xlim(xmin,xmax) #设置x轴的取值区间
  1. ylim()函数。ylim()函数用于设置y轴的取值区间,使用方法和xlim()函数一致。
  2. xticks()函数。xticks()函数用于设置或返回x轴的刻度值或刻度标签,可以通过传递参数直接设置,也可以通过调用函数返回刻度值进行设置。
    一般xticks()函数的使用方法有如下几种:
x_ticks,labels = xticks()  #返回当前x轴的刻度值和刻度标签
xticks(x_ticks,[labels])  #设置x轴的刻度值和刻度标签,刻度标签可以省略
  1. yticks()函数。yticks()函数用于设置y轴的刻度值或刻度标签,使用方法和xticks()函数一致。
  2. xlabel()函数。xlabel()函数用于设置x轴的标签,通过传递参数设置x轴的标签及其标签属性。使用方法如下:
xlabel(label)  #将x轴的标签设置为label
  1. yxabel()函数。ylabel()函数用于设置y轴的标签,使用方法和xlabel()函数一致。
  2. legend()函数。legend()函数通过传递参数设置当前绘图区的图例。使用方法如下:
legend([图例1,[图例2,图例3]])  #在绘图区适当的位置显示一个或若干个图例
  1. text()函数。text()函数通过传递参数可以在指定的坐标位置显示相应的文本。使用方法如下:
text(x,y,s)  #在坐标系的(x,y)点,显示文本s
  1. title()函数。title()函数通过传递参数设置当前绘图区的标题及其显示位置,位置参数可以为‘center’、‘left’、‘right’,对应中间、左、右,默认为‘center’。使用方法如下:
title(s,loc='center')  #为绘图区添加标题s,默认居中显示

上述函数的使用实例:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'  #设置中文字体为黑体
x=np.arange(5)
y1=x
y2=2*x
y3=3*x
plt.plot(x,y1,"bs",x,y2,"k--",x,y3,"ro-")  #三条直线的绘制
plt.axis('scaled') #设置x轴y轴按实际比例显示
plt.xlim(0,5)  #设置x轴的区间
plt.ylim(0,15)  #设置y轴的区间
plt.xticks([0,1,2,3,4])  #设置x轴刻度
plt.yticks([3,6,9,12,15],['a','b','c','d','e'])  #设置y轴的刻度标签,'a'对应3,以此类推
plt.xlabel('x轴')  #设置x轴名称
plt.ylabel('y轴')  #设置y轴名称
plt.legend(["y1=x","y2=2x","y3=3x"])  #设置图例
plt.text(1,8,"直线")  #在坐标(1,8)处添加文本"直线"
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第7张图片

3.3 子图的绘制

如果需要在一个绘图区域绘制多个不叠加的图形,需要使用到pyplot模块中的subplot()函数,使用方法如下:

subplot(nrows,ncols,index)

其中nrows表示将绘图区分割成nrows行;ncols表示将绘图区分割成ncols列;index用于指定当前子绘图区域的索引,子区域索引按照行优先顺序从1开始进行编号,步长为1。
绘制子图实例:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y1=x
y2=2*x
y3=3*x
y4=4*x
plt.subplot(2,2,1)  #第一行第一列子图的绘制
plt.plot(x,y1,"bs") 
plt.subplot(2,2,2)  #第一行第二列子图的绘制
plt.plot(x,y2,"k--") 
plt.subplot(2,2,3)  #第二行第一列子图的绘制
plt.plot(x,y3,"ro-") 
plt.subplot(2,2,4)  #第二行第二列子图的绘制
plt.plot(x,y4,"m:")
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第8张图片

4、其他类型的图表

pyplot()模块除了提供绘制直、曲线或离散点的plot()函数外,还提供了绘制条形图、散点图、饼图等多种图形的函数。常见的绘制图形函数如下:

函数 描述
bar() 绘制竖向条形图
barh() 绘制横向条形图
hist() 绘制直方图
pie() 绘制饼图
boxplot() 绘制箱形图
scatter() 绘制散点图

下面选择几种常见的绘制函数展开介绍。

4.1 竖向条形图

绘制竖向条形图的函数用法如下:

bar(x,height)

其中x表示x轴对应的值,height表示与x对应的高度。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
height=[1,7,9,4,5]
plt.bar(x,height)
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第9张图片

4.2 散点图

绘制散点图的函数用法如下:

scatter(x,y)

其中x表示x轴对应的值,y表示与x对应的y值。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=[1,7,9,4,5]
plt.scatter(x,y)
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第10张图片

4.3 饼图

绘制饼图的函数用法如下:

pie(x,explode=None,labels-None,autopct=None,shadow=False)

其中x表示绘制饼图的数据集;explode表示设置饼块分离,默认为空,表示不分离;labels表示设置饼块对应标签,默认为空;autopct表示设置饼块显示占比值,默认为空;shadow表示设置饼图是否有阴影,默认为False。

import matplotlib.pyplot as plt
data = [1,2,3,4,5]
Explode = (0.1,0,0,0,0)  #第一个饼块分离
Labels=['num1','num2','num3','num4','num5']  #饼块对应的标签
plt.pie(data,explode=Explode,labels=Labels,autopct='%.2f%%')  #autopct='%.2f%%'设置显示占比值并保留两位小数
plt.show()

三、机器学习基础知识:Python常用机器学习库(Matplotlib)_第11张图片

你可能感兴趣的:(机器学习(Python),机器学习,人工智能,python,数据分析,数据挖掘)