matplotlib 使用简明教程(四)-辅助性元件

matplotlib 使用简明教程(四)-辅助性元件

    • 辅助线
      • `plt.vlines(x, ymin, ymax, colors='k', label='')` 和 `plt.hlines(y, xmin, xmax, colors='k', label='')`
      • `plt.axvline(x=0, ymin=0, ymax=1, hold=None, **kwargs)` 和 `plt.axhline(y=0, xmin=0, xmax=1, hold=None, **kwargs)`
      • `plt.axvspan(xmin, xmax, ymin=0, ymax=1, hold=None, **kwargs)` 和 `plt.axhspan(ymin, ymax, xmin=0, xmax=1, hold=None, **kwargs)`
    • 清除
      • `plt.cla()`
      • `delaxes(ax=None)`
    • 坐标轴设置
      • `plt.axis(*v, **kwargs)`
      • `plt.xlim()` 和 `plt.ylim()`
      • `plt.xlabel(label, fontdict=None, labelpad=None, **kwargs)` 和 `plt.ylabel(label, fontdict=None, labelpad=None, **kwargs)`
      • `plt.xscale(scale, **kwargs)` 和 `plt.yscale(scale, **kwargs)`
      • `plt.xticks(locs, [labels], **kwargs)` 和 `plt.yticks(locs, [labels], **kwargs)`
      • `plt.minorticks_off()` 和 `plt.minorticks_on()`
      • `plt.autoscale(enable=True, axis='both')`
      • `plt.grid(b=None, which='major', axis='both', **kwargs)`
      • `plt.rgrids()`
    • 标注、标题与图例
      • `plt.title(s, *args, **kwargs)`
      • `plt.annotate(s, xy, xytext=None, xycoords=None, textcoords)`
      • `plt.legend()`
      • `plt.arrow(x, y, dx, dy, hold=None, **kwargs)`
      • `plt.text(x, y, s, **kwargs)`
      • `plt.colorbar(mappable=None, cax=None, ax=None, **kw)`
      • `plt.table(**kwargs)`

除了一般的图表,还会有图例、辅助线等辅助性的元件,在这里进行一些介绍

辅助线

plt.vlines(x, ymin, ymax, colors='k', label='')plt.hlines(y, xmin, xmax, colors='k', label='')

绘制一条垂直/水平的辅助线,以 vlines 为例,说明重要参数:

  • x:横坐标
  • ymin,ymax:辅助线纵坐标的最小值、最大值
  • label:标签内容

plt.axvline(x=0, ymin=0, ymax=1, hold=None, **kwargs)plt.axhline(y=0, xmin=0, xmax=1, hold=None, **kwargs)

绘制一条横跨当前图表的垂直/水平辅助线,以 axvline 为例,说明重要参数:

  • x:横坐标
  • ymin, ymax:辅助线两头纵坐标相对于整个图表的位置,范围在 0 到 1 之间。

与 vlines 的区别在于

  • 可以不规定 ymin 和 ymax
  • ymin 和 ymax 的定义也不同,axvline 中是做了归一化的
  • 不能增加 label

plt.axvspan(xmin, xmax, ymin=0, ymax=1, hold=None, **kwargs)plt.axhspan(ymin, ymax, xmin=0, xmax=1, hold=None, **kwargs)

绘制一个横跨当前图表的垂直/水平区域,以 axvspan 为例,说明重要参数:

  • xmin, xmax:区域的左、右边界
  • ymin,ymax:区域上下纵坐标对于整个图表的位置,范围在 0 到 1 之间

清除

plt.cla()

清除当前的图表(axes)

delaxes(ax=None)

移除 ax 参数定义的 axes(图表),如果 ax 为 None,则移除当前的 axes(图表)

坐标轴设置

plt.axis(*v, **kwargs)

主要用于设置坐标轴的属性,返回值为当前的坐标轴范围 [xmin, xmax, ymin, ymax],几种调用方式如下:

调用方式 说明
axis() 返回当前的坐标轴范围 [xmin, xmax, ymin, ymax]
axis(v) 其中 v 为 [xmin, xmax, ymin, ymax]
用来设置坐标轴范围
axis('off') 不显示坐标轴和坐标轴名称
axis('equal') x、y 轴对应长度所表示的数值相同,提高某一个轴的范围以保持图表大小及比例不变
axis('scaled') x、y 轴对应长度所表达的数值相同,并保持两个轴的数值范围不变,因此需要对图表比例进行调整(缩放)
axis('tight') 在显示所有数据的前提下,尽量减少两个轴的数值范围,并尽量让数据居中
axis('image') 将图表比例按照图片的比例进行调整(缩放)
axis('square') 将图表变成正方形,并确保 (xmax-xmin) 与 (ymax-ymin) 相同
axis('auto') 恢复自动范围

plt.xlim()plt.ylim()

设置并返回 x 轴和 y 轴的数值范围,以 xlim() 为例说明调用方式:

调用方式 说明
xlim() 返回 xmin, xmax
xlim(xmin, xmax)xlim((xmin, xmax)) 设置 x 轴的最大、最小值
xlim(xmax = n)xlim(xmin = n) 设置 x 轴的最大或最小值

plt.xlabel(label, fontdict=None, labelpad=None, **kwargs)plt.ylabel(label, fontdict=None, labelpad=None, **kwargs)

设置 x 轴及 y 轴的标签。

plt.xscale(scale, **kwargs)plt.yscale(scale, **kwargs)

设置 x 轴及 y 轴的缩放方式,参数如下:

  • ‘linear’: 线性
  • ‘log’: 指数类型,支持的 kwargs 包括:
    • basex/basey: 指数的底
    • nonposx/nonposy: 如何处理负数,直接截掉(‘mask’)还是化成一个接近 0 的数(‘clip’)
    • subx/suby: 需要是一个整数构成的数组,用于确定坐标轴上 subtick 的位置
  • ‘logit’: 评定模型,支持的 kwargs 包括:
    • nonpos: 对于大于 1 或小于 0 的数据如何处理,直接截掉(‘mask’)或化成一个接近 1 或 0 的数(‘clip’)
  • ‘symlog’: 对数类型,支持的 kwargs 包括:
    • basex/basey: 对数的底
    • linthreshx/linthreshy: 在 (-x, x) 范围内采用线性方式
    • subx/suby: 需要是一个整数构成的数组,用于确定坐标轴上 subtick 的位置

plt.xticks(locs, [labels], **kwargs)plt.yticks(locs, [labels], **kwargs)

设置坐标轴上 tick(坐标点?) 的位置,如果调用时未添加参数,则获取当前图表的次坐标设置。
调用参数说明如下:

  • loc: 次坐标的位置,是一个列表
  • labels: 放置在 loc 对应位置的标签

plt.minorticks_off()plt.minorticks_on()

关闭/打开当前图表的次坐标。

plt.autoscale(enable=True, axis='both')

是否自动设置坐标轴的范围。
axis 可选 x、y、both

plt.grid(b=None, which='major', axis='both', **kwargs)

打开/关闭 axes 的栅格。

主要参数:

  • b:True、False 或 None,分别是打开栅格、关闭栅格、变更栅格状态(取反)
  • which:‘major’ 主、‘minor’ 次、‘both’ 两者都
  • axis:‘both’ 两者、‘x’ x 轴、‘y’ y 轴

plt.rgrids()

绘制角坐标图的栅格。

调用方式 说明
rgrids() 直接调用
lines, labels = rgrids( (0.25, 0.5, 1.0) ) 规定详细的位置和规范
rgrids( (0.25, 0.5, 1.0), ('Tom', 'Dick', 'Harry' ) 规定位置和标签

标注、标题与图例

plt.title(s, *args, **kwargs)

为当前图表添加标题,重要参数如下:

  • s:标题内容
  • fontdict:标题样式,是一个字典
  • loc:标题位置,可选 ‘centet’, ‘left’, ‘right’

plt.annotate(s, xy, xytext=None, xycoords=None, textcoords)

在图表中进行标注,重要参数说明如下:

  • s:标注的字符串
  • xy:标注所在的位置
  • xytext:如果有规定,则文字位置以该参数为准,通过一个箭头指向 xy 所在位置
  • xycoords:xy 坐标系统
    • ‘data’:沿用所标注对象的坐标方式
    • ‘figure points’:从画布的左下角,按照“点”来计算
    • ‘figure pixels’:从画布的左下角,按照“像素”来计算
    • ‘figure fraction’:从画布的左下角,按照“比例”来计算
    • ‘axes points’:从图表的左下角,按照“点”来计算
    • ‘axes pixels’:从图表的左下角,按照“像素”来计算
    • ‘axes fraction’:从图表的左下角,按照“比例”来计算
    • ‘polar’:极坐标
  • textcoords:xytext 的坐标体系
    • 包括所有 xycoords 的方式
    • ‘offset points’:从 xy 处,按照“点”来计算
    • ‘offset pixels’:从 xy 处,按照“像素”来计算

plt.legend()

添加图例。

调用方式 说明
legend() 如果已经为图表中的元素添加了 label,自动绘制图例
legend((line1, line2, line3), ('label1', 'label2', 'label3')) 为几个 handler(linex)添加图例,标签分别为 labelx

plt.arrow(x, y, dx, dy, hold=None, **kwargs)

绘制一个箭头,位置从 (x,y) 到 (x+dx, y+dy)

plt.text(x, y, s, **kwargs)

在图表中添加文字,重要参数如下:

  • x、y:文字的坐标,默认使用数据(data)坐标,可以使用 transform 来改变坐标轴类型
  • s:文字内容

plt.colorbar(mappable=None, cax=None, ax=None, **kw)

在图表边绘制一个颜色栏,显示当前颜色图并指示数据值到颜色图的映射。

matplotlib 使用简明教程(四)-辅助性元件_第1张图片

绘制调用方式如下:

调用方式 说明
colorbar() 为当前图表添加颜色栏
colorbar(cax=xxx) 为 xxx 定义的图表添加颜色栏
colorbar(ax=xxx) 为 xxx 这个数组中的图表添加颜色栏

plt.table(**kwargs)

给当前 axes 中添加一个表格,重要参数如下:

  • cellText:表格中的内容
  • cellColours:默认 None,定义每个单元格颜色
  • cellLoc:表格中文字的对齐方式,默认 ‘right’,可选 ‘left’、‘bottom’
  • colWidths:默认 None,定义每列的宽度
  • rowLabels:每行的标签
  • rowColours:定义每行标签的颜色
  • rowLoc:行标签文字的对齐方式,默认 ‘left’
  • colLabels:每列的标签
  • colColours:每列标签的颜色
  • colLoc:列标签文字的对齐方式,默认 ‘center’,
  • loc:表格的位置,默认 ‘bottom’

系列文章:

matplotlib 使用简明教程(一)-基础概念:
https://blog.csdn.net/fenghuizhidao/article/details/79352882
matplotlib 使用简明教程(二)-常用图表
https://blog.csdn.net/fenghuizhidao/article/details/83090043
matplotlib 使用简明教程(三)-一些专业图表简介
https://blog.csdn.net/fenghuizhidao/article/details/83090165
matplotlib 使用简明教程(四)-辅助性元件
https://blog.csdn.net/fenghuizhidao/article/details/83090249
matplotlib 使用简明教程(五)-画布、图表、元素基础操作
https://blog.csdn.net/fenghuizhidao/article/details/83090320
matplotlib 使用简明教程(六)-图像、动画相关
https://blog.csdn.net/fenghuizhidao/article/details/83090512
matplotlib 使用简明教程(七)-样式定义
https://blog.csdn.net/fenghuizhidao/article/details/83090553

你可能感兴趣的:(Python学习,Matplotlib)