(一)matplotlib绘图基础

一、matplotlib库简介

matplotlib:是一个综合库,用于在Python中创建静态、动画和交互式可视化。

matplotlib有许多模块,分别定义了不同的类和函数:
matplotlib.figure模块
matplotlib.pyplot模块
matplotlib.axes模块
等等等等很多
详细参考Matplotlib的API概述部分: https://matplotlib.org/stable/api/index.html

二、matplotlib中重要的类

1、class matplotlib.figure.Figure
【完整名称】:
matplotlib.figure.Figure(figsize = None,dpi = None,facecolor = None,edgecolor = None,linewidth = 0.0,frameon = None,subplotpars = None,tight_layout = None,constrained_layout = None)

可以理解为画布,就是整个画图区域

2、class matplotlib.axes.Axes
【完整名称】:
class matplotlib.axes.Axes(fig, rect,*, facecolor=None, frameon=True, sharex=None, sharey=None, label=’’, xscale=None, yscale=None, box_aspect=None, **kwargs)

可以理解为一张图片,一个画布有几张图片就有几个Axes

在这里插入图片描述
有些参数可以通过类的对象来修改,也可以通过调用函数来修改

三、matplotlib.pyplot模块介绍

最常用的是matplotlib.pyplot 模块,该模块里封装了许多函数,可以像matlab一样工作。每个pyplot函数对图形进行一些更改:例如,创建图形、在图形中创建绘图区域、在绘图区域中绘制一些线、用标签装饰绘图等。

pyplot模块下的函数列表参考:https://matplotlib.org/stable/api/pyplot_summary.html

#在使用前需要先引入该模块
import matplotlib.pyplot as plt

接下来主要介绍pyplot模块几个重要的函数及其参数

  1. plt.figure(): 设置画布的属性
    【完整函数名】:
    matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
    【参数】:
    num:图像编号或名称,数字为编号 ,字符串为名称
    figsize:指定figure的宽和高,单位为英寸;
    dpi:参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
    facecolor:背景颜色
    edgecolor:边框颜色
    frameon:是否显示边框
    【返回值】:
    类matplotlib.figure.Figure的对象,记为fig,其参数见2.1所示
    【用法】:
    有些参数使用matplotlib.pyplot.figure()函数,有些参数使用返回的类matplotlib.figure.Figure的对象修改

  2. plt.subplot():在当前画布添加一个图片(subplot,子图)
    【完整函数名】:
    matplotlib.pyplot.subplot(*args, **kwargs)
    【参数】:
    *args(nrows,ncols,index ):分别为子图的行数、列数和将要添加的这个子图的索引。使用时可以“2,2,1”也可以“221”
    **kwargs
    其他参数请参考官网
    【用法】
    subplot可以规划figure划分为(nrows × ncols)个子图,但每条subplot命令只会创建其中的一个子图

  3. plt.subplots():创建一个画布和一组图片(子图)
    【完整函数名】:
    matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
    【参数】:
    nrows, ncols:图片(子图)的行数和列数
    sharex, sharey:是否共享坐标轴刻度 bool or {‘none’, ‘all’, ‘row’, ‘col’}, default: False
    【返回值】:
    一个类matplotlib.figure.Figure的对象,记为fig;
    一个或一组matplotlib.axes.Axes的对象,记为ax/axs
    花式创建子图参考:https://matplotlib.org/stable/tutorials/provisional/mosaic.html#sphx-glr-tutorials-provisional-mosaic-py

  4. plt.savefig() 保存当前图形

# 保存当前图形到C:\\路径下,名称为test_rasterization,格式为svg
plt.savefig("C:\\test_rasterization.svg", dpi=300)

保存矢量图:
.eps、.svg

四、使用类matplotlib.axes.Axes的对象画图

一、二、三节介绍了怎么创建和设置画布(Figure,记为fig)、图片(Axes,记为ax)。第四节介绍怎么使用Axes的对象画图。
当只有画布上只有一张子图时,可以用plt代替ax,但不建议使用

  1. 类Axes的属性(或成员变量)
    属性是不可以直接访问的,设置属性和获取属性的值都需要调用类的成员函数,通常是属性名称前加“set_”或“get_”
    在这里插入图片描述

  2. 类Axes的成员函数
    2.1用于绘制图形的函数
    plot的类型
    2.2用于设置属性的函数
    具体参考:https://matplotlib.org/stable/api/axes_api.html
    常用的有
    在这里插入图片描述

  3. 常用参数设置
    a) 图例的位置
    loc:指定图例的角
    bbox_to_anchor:将指定图例的角放在某个坐标上/范围内
    例:

#将图例放在(x, y, width, height)范围的最佳位置 ↓ 
ax.legend(loc='best', bbox_to_anchor=(0.5, 0.0, 0.5, 0.5))
#将图例的右上角放在(x, y)处 ↓ 
ax.legend(loc='upper right', bbox_to_anchor=(0.5, 0.5))

五、常用的参数

1 字体类型和大小 参考:class matplotlib.text.Text

fontproperties / font / font_properties:字体属性 6种
{‘family’,‘style’,‘stretch’,‘weight’,‘size’,‘math_fontfamily’}

fontfamily / family:字体类型{FONTNAME, ‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, ‘monospace’}

fontsize / size:字体大小 float or {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}
… …
字体的类型可以参考:https://zhuanlan.zhihu.com/p/35983270
常用的字体family:‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, or ‘monospace’为最常用的
Serif :在印刷学上指衬线字体。衬线字体有 Georgia, Garamond, Times New Roman, 中文的宋体。
sans-serif:就是无衬线字体。无衬线字体比较圆滑,线条一般粗细均匀。比较适合用作艺术字、标题等。因此sans-serif一般不适用于绘图的axes,legend等。
cursive:即为手写字体。可以用在特殊手写效果的绘图上。
fantasy:梦幻字体,非常有艺术感。
monospace:等宽字体,可以使得英文字母等宽。
2 形状和颜色
点、线形状及颜色https://blog.csdn.net/hesongzefairy/article/details/113527780

六、其他功能

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值