一、运行环境
- 学习工具:jupyter-notebook
- python版本:311
- 系统:Win11
二、什么是matplotlib?
matplotlib是基于python生态开发的一个可视化绘图库,它的出现让python在数据分析及机器学习方面占了重要的一部分,目前很多数据分析及机器学习相关方面的工程都有使用到这个库,并且由于其简单易用,安装简单等方面的优势深得广大开发者的喜爱。
三、安装及导入
1.安装pip install matplotlib
2. 导入项目
新建项目并直接import即可import matplotlib.pyplot as plt
,简单易用
四、matplotlib的使用
- 基础使用:生成一个画布
highlighter- leaf
#定义一个画布 #subplots(X,Y,figsize=(X,Y)) #其中figsize(X,Y) 用于定义画布的大小 fig,ax = plt.subplots(figsize = (10, 5)) plt.show()
- 生成多个子图(ax)
highlighter- leaf
#subplots(X,Y)用于定义该画布有几行几列,即一个大画布fig上有多个小画布ax组成axes fig,axes = plt.subplots(2,3,figsize = (10, 4)) plt.show()
- 绘制多个子图
highlighter- apache
#绘制多个子图 fig,axes = plt.subplots(1,2,figsize=(10,4)) #绘制一个一行两列的图 x=[1,20,40,15,2] y=[4,6,15,7,6] #对第一个子图进行绘制 bplot1 = axes[0].plot(x,y) #绘制第二个子图 bplot2 = axes[1].plot(y,x)
- 同一块画布上绘制多条函数
highlighter- apache
#简单的线性图 # x = list(range(0,10)) # y =list(range(0,10)) # plt.plot(x,y) plt.plot(range(12),color="red") #等价于上面的操作 plt.plot([1,2,3]) #在现有的画布上继续绘画一条直线
- 放大图像(只显示函数图像的一部分)
highlighter- apache
#原函数图像 x=[1,20,40,15,2] y=[4,6,15,7,6] plt.plot(x,y)
highlighter- apache
#直接对x,y赋值 x=[1,20,40,15,2] y=[4,6,15,7,6] plt.plot(x,y) #通过设定坐标轴刻度,只显示部分图形 plt.axis([0,10,0,10]) #x:[0,10],y:[0,10]
- 为图像添加标题横纵坐标信息
- 添加标题和x、y名称
highlighter- apache
x=[1,20,40,15,2] y=[4,6,15,7,6] #添加标题 plt.title("matplotlibTest") #添加x,y轴名称 plt.xlabel("Feature") plt.ylabel("shape") plt.plot(x,y)
- 更改x、y轴刻度(纯数字形式)
highlighter- apache
x=[1,20,40,15,2] y=[4,6,15,7,6] #添加标题 plt.title("matplotlibTest") #添加x,y轴名称 plt.xlabel("Feature") plt.ylabel("shape") #修改x轴刻度,纯数字形式 plt.xticks((0,10,20,30,40)) #修改y轴刻度,纯数字形式 plt.yticks((0,5,10,15,20)) plt.plot(x,y)
- 更改x、y轴刻度(自定义坐标信息)
highlighter- apache
x=[1,20,40,15,2] y=[4,6,15,7,6] #添加标题 plt.title("matplotlibTest") #添加x,y轴名称 plt.xlabel("Feature") plt.ylabel("shape") #自定义x轴坐标信息 plt.xticks((0,10,20,30,40),('text1','text2','text3','text4','text5')) #自定义y轴坐标信息 plt.yticks((0,5,10,15,20),('align1','align2','align3','align4','align5')) plt.plot(x,y)
- 基于axes的显示画图
highlighter- clean
#基于 axes 的显式画图:用 Axes 画图更加直观,所以被称为“显式画图”,直接用 Figure画图,被称为 “隐式画图” import numpy as np x = np.linspace(-1,1,50) #生成50个-1到1之间的数 y = x**2 fig = plt.figure() #生成空白画布 ax = fig.add_subplot() #空白的子图 ax.plot(x,y,color="red",linewidth=4,linestyle='-.',marker='o') #绘画一条函数图 ax.plot(y,x) #绘画另一条函数图 ax.legend(["y=x**2","y**2=x"]) #添加图例 ax.set_title('x and y',fontsize=20) #设置标题 ax.set_xlabel("x label") #设置x轴名称 ax.set_ylabel("y label") #设置y轴名称 ax.set_xlim(-1,1) #设置x轴范围 ax.set_ylim(-1,1) #设置y轴范围 # ax.grid(linewidth=3,linestyle=':',color='purple',alpha=0.5) plt.show()