ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

matpyplot简单使用

2022-02-25 20:32:35  阅读:279  来源: 互联网

标签:axes 函数 对象 使用 Matplotlib 画布 matpyplot 简单 center


Matplotlib图形组成

Matplotlib 生成的图形主要由以下几个部分构成:

image-20220224213506515
  • Figure:指整个图形,您可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等;
  • Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区;
  • Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签;
  • Artist:您在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等

Matplotlib.pyplot接口汇总

Matplotlib figure图形对象

在 Matplotlib 中,面向对象编程的核心思想是创建图形对象(figure object)。通过图形对象来调用其它的方法和属性,这样有助于我们更好地处理多个画布。在这个过程中,pyplot 负责生成图形对象,并通过该对象来添加一个或多个 axes 对象(即绘图区域)。

备注:可以使用figsize属性指定画布大小,单位英寸

#创建一个空白画布
fig = plt.figure()
# 使用 add_axes() 将 axes 轴域添加到画布中,
'''
序列中的 4 个数字分别对应图形的左侧,底部,宽度,和高度,且每个数字必须介于 0 到 1 之间。
应该是指绘图区距离画布的左侧和底部多远,宽度和高度分别占画布多大
'''
ax=fig.add_axes([0,0,1,1])

image-20220224225752426

Matplotlib axes类使用详解

Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域。在一个给定的画布(figure)中可以包含多个 axes 对象,但是同一个 axes 对象只能在一个画布中使用。

通过调用图形图像的add_axes()方法可以将 axes 对象添加到画布中。axes 对象在画布中的位置由函数参数rect决定。rect 是位置参数,接受一个由 4 个元素组成的浮点数列表,形如 [left, bottom, width, height] ,它表示添加到画布中的矩形区域的左下角坐标(x, y),以及宽度和高度。

axes 类的成员函数

  • axes.legend(handles,labels,loc):负责绘制图例。

    • handles 参数是一个序列,它包含了所有线型的实例;

    • labels 是一个字符串序列,用来指定标签的名称;

    • loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示;

      位置 字符串表示 整数数字表示
      自适应 Best 0
      右上方 upper right 1
      左上方 upper left 2
      左下 lower left 3
      右下 lower right 4
      右侧 right 5
      居中靠左 center left 6
      居中靠右 center right 7
      底部居中 lower center 8
      上部居中 upper center 9
      中部 center 10
  • axes.plot():使用方式同plt.plot()

    它可以绘制点和线,语法格式如下:

    # 画单条线
    plot([x], y, [fmt], *, data=None, **kwargs)
    # 画多条线
    plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
    

    参数说明:

    • x,y : 点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
    • fmt : 可选,定义基本格式(如颜色、标记和线条样式)。fmt = '[marker][line][color]'
      • marker:'.' 点标记,'o' 实心圈标记,'s'正方形标记,'D'钻石标记,'H'六角标记,v' 倒三角标记,'^' 上三角标记,'>' 右三角标记,'<' 左三角标记,''无任何标记...等等。
      • line:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线,’'不画线...等等。
      • color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。
    • **kwargs : 可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
      • markersize,简写为 ms:定义标记的大小。
      • markerfacecolor,简写为 mfc:定义标记内部的颜色。
      • markeredgecolor,简写为 mec:定义标记边框的颜色。
      • linewidth ,简写为 lw,定义线的宽度;值可以是浮点数,如:1、2.0、5.67 等。
  • 其他:axes.set_xlabel()/set_ylabel()/set_title()使用方式类似plt.xlabel()/ylabel()/title()

    1. 使用 xlabel()ylabel() 方法来设置 x 轴和 y 轴的标签

    2. 使用 title() 方法来设置标题

    3. 标题与标签的定位

    • title() 方法提供了 loc 参数来设置标题显示的位置,可以设置为: 'left', 'right', 和 'center', 默认值为 'center'。
    • xlabel() 方法提供了 loc 参数来设置 x 轴显示的位置,可以设置为: 'left', 'right', 和 'center', 默认值为 'center'。
    • ylabel() 方法提供了 loc 参数来设置 y 轴显示的位置,可以设置为: 'bottom', 'top', 和 'center', 默认值为 'center'。
image-20220225112114868

Matplotlib subplot()函数用法详解

感觉配合图形对象使用感觉更方便,更推荐使用下一节介绍的方法

详细:Matplotlib subplot()函数用法详解 (biancheng.net)

在使用 Matplotlib 绘图时,我们大多数情况下,需要将一张画布划分为若干个子区域,之后,我们就可以在这些区域上绘制不用的图形。matplotlib.pyplot模块提供了一个 subplot() 函数,它可以均等地划分画布,该函数的参数格式如下:

plt.subplot(nrows, ncols, index)

nrows 与 ncols 表示要划分几行几列的子区域(nrows*nclos表示子图数量),index 的初始值为1,用来选定具体的某个子区域。

配合图形对象:

使用函数add_subplot(nrows, ncols, index)函数返回一个 axes 对象。

image-20220225133939704

要调整子图之间的间距使用函数:

fig.subplots_adjust(
    left=None,
    bottom=None,
    right=None,
    top=None,
    wspace=None,
    hspace=None,
)

Matplotlib subplots()函数详解

matplotlib.pyplot模块提供了一个 subplots() 函数,它的使用方法和 subplot() 函数类似。其不同之处在于,subplots() 既创建了一个包含子图区域的画布,又创建了一个 figure 图形对象,而 subplot() 只是创建一个包含子图区域的画布。

subplots 的函数格式如下:

fig , ax = plt.subplots(nrows, ncols)

备注:可以设置参数constrained_layout=True自适应子图间距

nrows 与 ncols 表示两个整数参数,它们指定子图所占的行数、列数。

函数的返回值是一个元组,包括一个图形对象和一个axes对象数组:[nrows, ncols];可以通过数组索引方式访问axes对象。

Matplotlib subplot2grid()函数详解

matplotlib.pyplot 模块提供了 subplot2grid() ,该函数能够在画布的特定位置创建 axes 对象(即绘图区域)。不仅如此,它还可以使用不同数量的行、列来创建跨度不同的绘图区域。与 subplot() 和 subplots() 函数不同,subplot2gird() 函数以非等分的形式对画布进行切分,并按照绘图区域的大小来展示最终绘图结果。

函数语法格式如下:

plt.subplot2grid(shape, location, rowspan, colspan)

参数含义如下:

  • shape:把该参数值规定的网格区域作为绘图区域;
  • location:在给定的位置绘制图形,初始位置 (0,0) 表示第1行第1列;
  • rowsapan/colspan:这两个参数用来设置让子区跨越几行几列。

Matplotlib grid()设置网格格式

axes 对象提供的 grid() 方法可以开启或者关闭画布中的网格(即是否显示网格)以及网格的主/次刻度。除此之外,grid() 函数还可以设置网格的颜色、线型以及线宽等属性。

grid() 的函数使用格式如下:

grid(color='b', ls = '-.', lw = 0.25)

参数含义如下:

  • color:表示网格线的颜色;
  • ls:表示网格线的样式;
  • lw:表示网格线的宽度;

网格在默认状态下是关闭的,通过调用上述函数,网格会被自动开启,如果您只是想开启不带任何样式的网格,可以通过 grid(True) 来实现。

image-20220225185626992

坐标轴设置

  1. 设置坐标轴范围

    axes.set_xlim(下限, 上限)

  2. 设置刻度

    1. 方法1

    采用axes.set_xticks(ticks)方法,x轴的刻度就是一维数组ticks。也可以通过 set_xticklabels()函数设置与刻度线相对应的刻度标签。

    image-20220225200244048
    1. 方法2

    见:(38条消息) matplotlib设置坐标轴刻度间隔_单单一个越字的博客-CSDN博客_matplotlib坐标轴刻度间距

Matplotlib中文乱码解决方案

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题

标签:axes,函数,对象,使用,Matplotlib,画布,matpyplot,简单,center
来源: https://www.cnblogs.com/duolaam/p/15937663.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有