文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Python_Matplotlib学习笔记(一)】pyplot模块的基本用法

2023-09-18 15:52

关注

pyplot模块的基本用法

前言

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形(来自:百度百科)。pyplot 模块是 Matplotlib 模块提供的快速绘图模块,它模仿了 MATLAB 的部分功能。在本文中主要介绍 pyplot 模块的基本用法,会进行持续的更新,欢迎各位读者朋友点赞收藏。

正文

1、导入pyplot模块

import matplotlib.pyplot as plt # 导入pyplot模块

2、plt.plot()方法绘制图像

  1. 传入一个参数绘制图像

    import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6]) # 如果只传入一个数组作为参数, matplotlib 认为是 Y 轴的坐标plt.show()

    在这里插入图片描述
    注意:

    1. 如果只传入一个数组作为参数, Matplotlib 认为是 Y 轴的坐标并自动生成 x 值。 由于 Python 范围从 0 开始,默认 x 向量具有与 y 相同的长度,但从 0 开始。因此 x 数据是 [0,1,2,3]。
    2. plt.show() 函数:默认情况下,matplotlib.pyplot 不会直接显示图像,只有调用 plt.show() 函数时,图像才会显示出来,类似 print() 函数。plt.show() 默认是在新窗口打开一幅图像,并且提供了对图像进行操作的按钮。
  2. 传入两个参数绘制图像

    import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6], [2, 5, 10, 12])plt.show()

    在这里插入图片描述

  3. plt.plot() 参数设置

    1. 设置线条颜色color = ' 'c = ' '

      import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6], [2, 5, 10, 12],c='black') # 设置线条颜色为黑色plt.show()

      在这里插入图片描述
      Matplotlib 支持的颜色缩写:

      字符字符
      ‘b’蓝色
      ‘c’青色
      ‘k’黑色
      ‘g’绿色
      ‘m’洋红
      ‘w’白色
      ‘r’红色
      ‘y’黄色
    2. 设置线条风格linestyle = ' 'ls = ' '

      import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6], [2, 5, 10, 12],ls='--') # 设置线条风格为虚线plt.show()

      在这里插入图片描述

      Matplotlib 支持的控制线条样式格式字符串:

      字符描述字符描述
      ‘-’实线‘–’虚线
      ‘-.’点划线‘:’点虚线
      ‘.’‘,’像素
      ‘o’圆圈‘v’下三角
      ‘^’上三角‘<’左三角
      ‘>’右三角‘1’ 1加下三角
      ‘2’1加上三角‘3’ 1加左三角
      ‘4’1加右三角‘s’正方形
      ‘p’五边形‘*’星形
      ‘h’六角形1‘H’六角形2
      ‘+’加号‘x’乘号
      ‘D’钻石‘d’菱形
    3. 设置线条宽度linewidth= ' 'lw= ' '

      import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6], [2, 5, 10, 12],lw=3) # 设置线条宽度为3plt.show()

      在这里插入图片描述

    4. 设置线条透明度alpha=0.5 0-1范围内的浮点数

      import matplotlib.pyplot as pltplt.plot([1, 3, 4, 6], [2, 5, 10, 12],alpha=0.2) # 设置线条透明度为0.2plt.show()

      在这里插入图片描述

3、plt.plot()方法添加描述信息

  1. 添加图片标题plt.title("")

  2. 添加轴标签plt.xlabel('') & plt.ylabel('')

  3. 设置显示中文字符:Matplotlib 的缺省字体不支持中文,所以要指定一个支持中文的字体 plt.rcParams['font.sans-serif']=['Microsoft Yahei'] # 设定字体为微软雅黑

    属性值说明
    SimHei中文黑体
    Kaiti中文楷体
    Lisu中文隶书
    FangSong中文仿宋
    YouYuan中文幼圆
    STSong华文宋体
    import matplotlib.pyplot as pltplt.title("折线图")  # 设定图片标题plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] # 设定字体为微软雅黑plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.show()

    在这里插入图片描述
    如果不设置中文字符
    在这里插入图片描述
    运行时也会有 Warning 提示:UserWarning: Glyph 36724 (\N{CJK UNIFIED IDEOGRAPH-8F74}) missing from current font.

4、plt.lim()方法设置坐标轴取值范围

  1. 设置横坐标轴取值范围plt.xlim(xmin=1, xmax=10)

  2. 设置纵坐标轴取值范围plt.ylim(ymin=2, ymax=15)

    import matplotlib.pyplot as pltplt.title("折线图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)plt.ylim(ymin=2, ymax=15)plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.show()

    在这里插入图片描述

5、plt.ticks()方法设置坐标轴刻度范围

  1. 设置横坐标轴刻度范围plt.xticks(ticks, labels, rotation=90, fontsize=12)
  2. 设置纵坐标轴刻度范围plt.yticks(ticks, labels, rotation=90, fontsize=12)
    参数介绍
    1. ticks 是一个 list,对应的是轴刻度,可以是小数可以是整数,ticks 不指定的位置不显示刻度;
    2. labels 是一个 list,长度和 ticks 相等,内容是想要在对应刻度显示的内容;
    3. rotation 是刻度内容旋转角度;plt.xticks(rotation=-90),使刻度文字与x轴垂直
    4. fontsize 设置刻度值的字体大小。
    import matplotlib.pyplot as pltplt.title("折线图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)plt.ylim(ymin=2, ymax=15)plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] # 设置显示中文字体plt.xticks(list(range(1, 15,2)),rotation=0, fontsize=12)  # 调整刻度范围和刻度标签plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.show()
    在这里插入图片描述

6、plt.grid()方法绘制网格线

绘制网格线:plt.grid(alpha=0.4),可以指定网格线的透明度。

import matplotlib.pyplot as pltplt.title("折线图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)  # 设置x轴范围plt.ylim(ymin=2, ymax=15)  # 设置y轴范围plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12)  # 调整x轴刻度范围plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

在这里插入图片描述

7、plt.axhline()方法绘制平行于坐标轴的水平参考线

绘制平行于 x 轴的水平参考线axhline()plt.axhline(y, c, ls, lw, label)
绘制平行于 y 轴的水平参考线axvline()plt.axvline(x, c, ls, lw, label)
参数介绍

  1. x&y:x&y轴的坐标;
  2. c:参考线的颜色;
  3. ls:参考线的风格;
  4. lw:参考线的宽度;
  5. label:参考线的名称。
import matplotlib.pyplot as pltplt.title("折线图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)  # 设置x轴范围plt.ylim(ymin=2, ymax=15)  # 设置y轴范围plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12)  # 调整x轴刻度范围plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.axhline(5, color='green', lw=2, label="分割线")  # 绘制平行于x轴的水平参考线,绿色,名称为分割线plt.show()

在这里插入图片描述

8、plt.axvspan()方法绘制垂直于坐标轴的参考区域

绘制垂直于 x 轴的参考区域plt.axvspan( xmin, xmax ,facecolor, alpha)
绘制垂直于 y 轴的参考区域plt.axhspan( ymin, ymax ,facecolor, alpha)
参数介绍

  1. xmin&ymin:参考区域的起始位置;
  2. xmax&ymax:参考区域的终止位置;
  3. facecolor:参考区域的填充颜色;
  4. alpha:参考区域填充颜色的透明度,[0~1]。
import matplotlib.pyplot as pltplt.title("折线图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)  # 设置x轴范围plt.ylim(ymin=2, ymax=15)  # 设置y轴范围plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12)  # 调整x轴刻度范围plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.axhline(5, color='green', lw=2, label="分割线")  # 绘制平行于x轴的水平参考线,绿色,名称为分割线plt.axvspan(xmin=2,xmax=5,facecolor='r',alpha=0.2)  # 绘制垂直于x轴的参考区域plt.show()

在这里插入图片描述

9、pyplot模块绘制柱状图、饼图、散点图

plt.plot() 方法绘制的是折线图,也是最常用的方法;
pyplot 模块也提供了其他方法来绘制柱状图、饼图、散点图:

  1. plt.bar() 方法绘制柱状图

    import matplotlib.pyplot as pltplt.title("柱状图")  # 设定字体为微软雅黑plt.ylabel('Y轴')  # 设置Y轴标签plt.xlabel('Time')  # 设置X轴标签plt.xlim(xmin=1, xmax=10)  # 设置x轴范围plt.ylim(ymin=2, ymax=15)  # 设置y轴范围plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12)  # 调整x轴刻度范围plt.bar([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

    在这里插入图片描述

  2. plt.pie() 方法绘制饼图

    import matplotlib.pyplot as pltplt.title("饼图")  # 设定字体为微软雅黑plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']value = [1, 3, 4, 6]plt.pie(value) # 绘制饼图,将一个列表传入到 pie() 函数中即可plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

    在这里插入图片描述
    饼图属性设置

    1. 设置饼图的颜色:colors 关键字设置,颜色列表由表示颜色的英文单词、表示颜色单词的简称或 RGB 格式组成。
    2. 设置标签:labels 关键字设置,默认为None,需要传入列表形式的值。
    3. 设置突出部分:explode 关键字设置,默认为None,需要传入列表数据,要强调那个扇形,就把相应的值设置成非 0。
    4. 设置填入百分比数值:autopct 关键字设置,默认为None,格式字符串如:‘%1.1f%%’。
    5. 饼图旋转从x轴逆时针旋转角度:startangle 关键字设置,默认为0,浮点类型;指定分数方向顺逆时针:counterclock 关键字设置,默认为True,bool类型。
    6. 设置阴影:shadow 关键字设置,默认为False。
    import matplotlib.pyplot as pltplt.title("饼图")  # 设定字体为微软雅黑plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']value = [1, 3, 4, 6]colors = ["blue", 'g', "#88c999", 'y']  # 1、设置饼图的颜色labels = ["Python", "C#", "Java", "Other"]  # 2、设置饼图标签explode = (0, 0.1, 0, 0)  # 3、设置突出部分,第二个数据突出autopct = "%1.1f%%"  # 4、设置填入百分比数值plt.pie(value, colors=colors, labels=labels, explode=explode, autopct=autopct, shadow=True)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

    在这里插入图片描述

  3. plt.scatter() 方法绘制散点图

    import matplotlib.pyplot as pltplt.title("散点图")  # 设定字体为微软雅黑plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']value = [1, 3, 4, 6]labels = ["Python", "C#", "Java", "Other"]  # 2、设置饼图标签 & 设置散点图横坐标plt.scatter(labels, value)plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

    在这里插入图片描述
    散点图属性设置

    1. 点的大小:s 关键字设置;

    2. 点的颜色:c 关键字设置;

    3. 点的透明度:alpha 关键字设置;

    4. 点的边缘颜色:edgecolors 关键字设置;

    5. 点的边缘线宽度:linewidths 关键字设置。

      import matplotlib.pyplot as pltplt.title("散点图")  # 设定标题plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']  # 设定字体为微软雅黑value = [1, 3, 4, 6]  # y轴labels = ["Python", "C#", "Java", "Other"]  # 2、设置饼图标签 & 设置散点图横坐标plt.scatter(labels, value, s=100, c="y", alpha=0.5, edgecolors="b",            linewidths=0.5)  # 点大小设置为100,颜色设置为黄色,透明度0.5,边缘线颜色黑色,粗度0.5plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

      在这里插入图片描述

10、plt.subplot()绘制多个子图对象(Axes对象)

在 Matplotlib 中,一个 Figure 对象(也就是画布)可以包括多个 Axes 对象(也就是子图),一个 Axes 代表一个绘图区域。
Matplotlib 提供了两个方法来绘制多图 plt.subplot() 和 plt.subplots() 方法。

  1. subplot() 方法:在绘图时需要指定位置,如果不创建 Axes 对象,Matplotlib 缺省会自动调用 plt.subplot(1,1,1) 指定 1行,1列,共1个子图,当前子图为第1个。

    import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft Yahei']  # 设定字体为微软雅黑x = [2, 6, 8, 10] # x轴y1 = [1, 3, 4, 6]  # y轴y2 = [9, 5, 6, 11]  # y轴plt.subplot(2, 1, 1)  # 指定2行,1列,共两个axe,当前使用第1个绘图块plt.title("绘图块1")  # 设定标题plt.plot(x, y1, 1)  # 绘图plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.subplot(2, 1, 2)  # 当前使用第2个绘图块plt.title("绘图块2")  # 设定标题plt.plot(x, y2, 2)  # 绘图plt.grid(alpha=0.4)  # 绘制网格,透明度为0.4plt.show()

    在这里插入图片描述

  2. subplots() 方法:可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。同时 subplots() 方法中融合了plt.figure() 的功能。
    常用参数设置

    1. 设置图表的行数:nrows,默认为 1;

    2. 设置图表的列数:ncols,默认为 1;

    3. 设置 x、y 轴是否共享属性:sharex、sharey,默认为 False。
      注意当定义子图分布只有一行或一列时,ax的索引也只有1位,当子图分布是两行两列及以上时,ax的索引也要变成ax[0,0],ax[0,1]这样的形式。

      import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft Yahei']  # 设定字体为微软雅黑x = [2, 6, 8, 10]  # x轴y1 = [1, 3, 4, 6]  # y轴y2 = [9, 5, 6, 11]  # y轴f, ax = plt.subplots(2, 2, sharey=True)  #ax[0,0].plot(x, y1)ax[0,0].set_title('Sharing Y axis')ax[0,1].set_title("绘图块1行2列")  # 设定标题ax[1,0].set_title("绘图块2行1列")  # 设定标题ax[1,1].plot(x, y2)plt.show()

      在这里插入图片描述

11、plt.figure()绘制多个绘图对象(Figure对象)

Matplotlib 每个绘图区都对应一个 Figure 对象,一个绘图 Figure 对象里面可以包含多个 Axes 子图对象。如果不创建 Figure 对象,Matplotlib 缺省会自动调用 plt.figure(1) 创建绘图对象。
创建 Figure() 对象

figure(num=None, figsize=None, dpi=None, facecolor=None,edgecolor=None, frameon=True, FigureClass=Figure, clear=False, **kwargs)

常用参数

  1. 设置图形背景颜色:facecolor 关键字;
  2. 设置图形分辨率:dpi 关键字,缺省值为 rc figure.dpi
  3. 设置图像大小:figsize 关键字,缺省值为 rc figure.figsize (1 英寸等于 2.54 cm)。

注意使用 subplots() 方法 创建子图 Axes 对象时也会创建 Figure 对象

import matplotlib.pyplot as pltplt.figure(1, facecolor="y")  # 创建第一个 Figure对象plt.plot([1, 4, 6, 23])  # 绘图plt.title("第一个 Figure对象")  # 设定标题plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']  # 设定字体为微软雅黑x = [2, 6, 8, 10]  # x轴y1 = [1, 3, 4, 6]  # y轴y2 = [9, 5, 6, 11]  # y轴f, ax = plt.subplots(2, 2, sharey=True)  # 创建第二个 Figure对象ax[0, 0].plot(x, y1)ax[0, 0].set_title('Sharing Y axis')ax[0, 1].set_title("绘图块1行2列")  # 设定标题ax[1, 0].set_title("绘图块2行1列")  # 设定标题ax[1, 1].plot(x, y2)plt.show()

在这里插入图片描述

来源地址:https://blog.csdn.net/sallyyellow/article/details/130291477

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯