目录

  • 一、前言
    • 我的运行环境
  • 二、什么是matplotlib?
  • 三、安装及导入
  • 四、matplotlib的使用

一、前言

本人因在学习基于python的机器学习相关教程时第一次接触到matplotlib相关方面的绘图知识,故写此笔记进行记录,如果能帮助到其他人欢迎点个赞👍表示支持

我的运行环境

  1. 学习工具:jupyter-notebook
  2. python版本:311
  3. 系统:Win11

二、什么是matplotlib?

matplotlib是基于python生态开发的一个可视化绘图库,它的出现让python在数据分析及机器学习方面占了重要的一部分,目前很多数据分析及机器学习相关方面的工程都有使用到这个库,并且由于其简单易用,安装简单等方面的优势深得广大开发者的喜爱。

三、安装及导入

1.安装
pip install matplotlib
2. 导入项目
新建项目并直接import即可import matplotlib.pyplot as plt,简单易用

四、matplotlib的使用

  1. 基础使用:生成一个画布
#定义一个画布#subplots(X,Y,figsize=(X,Y))#其中figsize(X,Y) 用于定义画布的大小fig,ax = plt.subplots(figsize = (10, 5))plt.show()

  1. 生成多个子图(ax)
#subplots(X,Y)用于定义该画布有几行几列,即一个大画布fig上有多个小画布ax组成axesfig,axes = plt.subplots(2,3,figsize = (10, 4))plt.show()

  1. 绘制多个子图
#绘制多个子图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)

  1. 同一块画布上绘制多条函数
#简单的线性图# 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])  #在现有的画布上继续绘画零一条直线

  1. 放大图像(只显示函数图像的一部分)
#原函数图像x=[1,20,40,15,2]y=[4,6,15,7,6]plt.plot(x,y)

#直接对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]

  1. 为图像添加标题横纵坐标信息
  • 添加标题和x、y名称
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轴刻度(纯数字形式)
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轴刻度(自定义坐标信息)
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)

  1. 基于axes的显示画图
#基于 axes 的显式画图:用 Axes 画图更加直观,所以被称为“显式画图”,直接用 Figure画图,被称为 “隐式画图”import numpy as npx = np.linspace(-1,1,50)  #生成50个-1到1之间的数y = x**2fig = 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()

8.其他
matplotlib除了生成上述的线性图以外还可以生成其他箱图等特殊的图像形式,具体可以参考matplotlib的官方文档https://matplotlib.org/stable/tutorials/index.html