当前位置: 首页 > news >正文

【python学习】第三方库之matplotlib的定义、功能、使用场景和代码示例(线图、直方图、散点图)

引言

Matplotlib 是一个 Python 的 2D 绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图
Matplotlib 是 John D. Hunter 编写的,其目的是为了替代MATLAB中的绘图功能,因为MATLAB是商业软件,而Matplotlib 是开源

文章目录

  • 引言
  • 一、安装`matplotlib`第三方库
  • 二、`Matplotlib`的定义
  • 三、功能
    • 3.1 绘制线图、散点图、条形图、直方图、饼图等
    • 3.2 支持多种硬拷贝格式和交互式环境
    • 3.3 可以轻松定制图形的各种属性,如颜色、线型、字体等
    • 3.4 支持动画制作
    • 3.5 与其他数据处理和科学计算库(如 NumPy、Pandas)紧密集成
  • 四、使用场景
    • 4.1 数据分析和可视化
    • 4.2 科学研究的图表绘制
    • 4.3 教育和演示
    • 4.4 制作高质量的图形用于出版
  • 五、代码示例
    • 5.1 以下是一个简单的 Matplotlib 代码示例,演示如何绘制一条线图
      • 5.1.1 代码
      • 5.1.2 代码解释
    • 5.2 画直方图
      • 5.2.1 代码
      • 5.2.2 代码解释
    • 5.3 画散点图
      • 5.3.1 代码
      • 5.3.2 代码解释
  • 六、总结(思维导图)

一、安装matplotlib第三方库

如下图所示操作:

在这里插入图片描述

二、Matplotlib的定义

Matplotlib是一个模块化的绘图库,它由几个不同的组件构成,其中最常用的模块是 pyplot,它提供了一个类似 MATLAB 的绘图接口

三、功能

3.1 绘制线图、散点图、条形图、直方图、饼图等

3.2 支持多种硬拷贝格式和交互式环境

3.3 可以轻松定制图形的各种属性,如颜色、线型、字体等

3.4 支持动画制作

3.5 与其他数据处理和科学计算库(如 NumPy、Pandas)紧密集成

四、使用场景

4.1 数据分析和可视化

4.2 科学研究的图表绘制

4.3 教育和演示

4.4 制作高质量的图形用于出版

五、代码示例

5.1 以下是一个简单的 Matplotlib 代码示例,演示如何绘制一条线图

5.1.1 代码

import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)  # 从0到10的100个点
y = np.sin(x)  # 计算每个点的正弦值
# 绘制图形
plt.figure(figsize=(10, 6))  # 设置图形大小
plt.plot(x, y, label='sin(x)', color='blue')  # 绘制线图,并指定标签和颜色
plt.title('Sine Function')  # 设置标题
plt.xlabel('x')  # 设置 x 轴标签
plt.ylabel('sin(x)')  # 设置 y 轴标签
plt.legend()  # 显示图例
plt.grid(True)  # 显示网格
# 显示图形
plt.show()

5.1.2 代码解释

  1. 使用了NumPy来生成数据点
  2. 使用 Matplotlib 的 pyplot 模块来绘制正弦函数的图形
  3. 调用不同的 plt 函数,设置图形的大小、标题、轴标签、图例以及是否显示网格
  4. plt.show()调用将图形显示在屏幕上

5.2 画直方图

5.2.1 代码

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图# 创建一个新的图形,命名为'test',并设置分辨率为每英寸50点
plt.figure('test', dpi=50)  # 定义一个列表,包含要绘制直方图的数据
data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]# 绘制data列表数据的直方图
# plt.hist()函数将自动计算每个数值的出现次数,并在图中显示
plt.hist(data)# 显示图形,如果没有这一行,图形将不会在屏幕上显示
plt.show()

5.2.2 代码解释

  1. import matplotlib.pyplot as plt: 这行代码是导入操作,它将Matplotlib库中的pyplot模块导入到当前脚本中,并将其重命名为 plt。这样,在后续代码中就可以使用 plt 来调用pyplot模块提供的绘图函数
  2. plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置图形的分辨率,这里的值为 50,表示每英寸有 50 个像素点。图形的分辨率越高,生成的图像越清晰,但文件大小也会更大
  3. data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]: 这行代码定义了一个名为 data 的列表,其中包含了将要绘制直方图的数据。列表中的每个数字代表一个观测值
  4. plt.hist(data): 这行代码调用了pyplot模块的 hist 函数,它接受一个数据序列,并计算该序列中每个数值的出现次数,然后绘制一个直方图。直方图的 x 轴表示数据值,y 轴表示每个数据值的出现频次
  5. plt.show(): 这行代码是pyplot模块提供的函数,用于显示之前创建的所有图形。在调用此函数之前,虽然图形已经被创建和配置,但它们并不会在屏幕上显示。只有在调用 plt.show() 之后,图形才会被渲染并显示在屏幕上

5.3 画散点图

5.3.1 代码

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图
import numpy as np  # 导入numpy库,用于数值计算# 创建一个新的图形,命名为'test',并设置分辨率为每英寸50点
plt.figure('test', dpi=50)  # 使用numpy的arange函数创建一个数组,包含从1到19的整数
x = np.arange(1, 20)# 设置y值与x值相等,这里y是x的简单复制
y = x# 使用plt.scatter绘制散点图,x和y是散点的坐标
# c='r'设置散点的颜色为红色,marker='o'设置散点的标记为圆形
plt.scatter(x, y, c='r', marker='o')# 显示图形,如果没有这一行,图形将不会在屏幕上显示
plt.show()

5.3.2 代码解释

  1. import matplotlib.pyplot as plt: 这行代码导入了matplotlib库中的pyplot模块,该模块提供了绘制2D图形的函数。通过导入这个模块,我们可以使用 plt 这个别名来调用pyplot的函数
  2. import numpy as np: 这行代码导入了numpy库,它是一个常用的科学计算库,这里我们用它来生成数值数组
  3. plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置了图形的分辨率,即每英寸的点数(dots per inch),这里设置为50
  4. x = np.arange(1, 20): 这行代码使用numpyarange函数创建了一个从1到19的数组,这个数组将作为散点图中点的 x 坐标。y = x: 这行代码将 y 设置为 x 的值,因此 y 也包含从1到19的整数,这个数组将作为散点图中点的 y 坐标
  5. plt.scatter(x, y, c=‘r’, marker=‘o’): 这行代码调用scatter函数绘制散点图,其中 x 和 y 是散点的 x 和 y 坐标,c=‘r’ 指定了散点的颜色为红色,marker=‘o’ 指定了散点的标记形状为圆形
  6. plt.show(): 这行代码是pyplot模块提供的函数,用于在屏幕上显示之前创建的所有图形。如果没有这行代码,图形将不会显示。在调用 plt.show() 之后,图形将被渲染并显示在屏幕上

六、总结(思维导图)

在这里插入图片描述

相关文章:

【python学习】第三方库之matplotlib的定义、功能、使用场景和代码示例(线图、直方图、散点图)

引言 Matplotlib 是一个 Python 的 2D 绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等 Matplotlib 是 …...

MySQL(3)表的操作

目录 1. 表的操作; 2. 数据类型; 1. 表的操作: 1.1 创建表: 语法: create table 表名( 属性 类型 [comment ], 属性 类型 [comment ], 属性 类型 ) character set 字符集 collate 校验集 engine 存储引擎; 前面博客提到: MyISAM和InoDB这两个比较重要. 1.2 查看表…...

SQL GROUPING运算符详解

在大数据开发中,我们经常需要对数据进行分组和汇总分析。 目录 1. GROUPING运算符概念2. 语法和用法3. 实际应用示例4. GROUPING运算符的优势5. 高级应用场景5.1 与CASE语句结合使用5.2 多维数据分析 6. 性能考虑和优化技巧7. GROUPING运算符的局限性8. 最佳实践9. GROUPING与其…...

在VS2017下FFmpeg+SDL编写最简单的视频播放器

1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录,用于调试) 6…...

LogViewer v2.x更新

logvewer 介绍 logviewer 是一个可以方便开发人员通过浏览器查看和下载远程服务器集群日志,使用ssh方式管理远程tomcat、jar包等应用,节省服务器资源。大家可以下载体验,请勿用于生产环境。欢迎提出意见或建议。 解决的问题 一般情况下公司…...

detection_segmentation

目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION) 文章目录 目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION)一. 计算机视觉(AI VISION)1. 图像分类2. 目标检测与定位3. 语义分割和实例分割目标检测算法可以分为两大类: R-CNN生成…...

0基础学python-13:古希腊掌管时间的模块——datetime和time

目录 前言 datetime模块 一、datetime 类 1.创建 datetime 对象 2.获取日期时间的各个部分 3.格式化日期时间为字符串 4.解析字符串为 datetime 对象 二、timedelta 类 1.创建 timedelta 对象 datetime注意事项 time模块 1.获取当前时间戳 2.获取当前时间的结构化表…...

棒球特长生升学具有其独特的优势和劣势·棒球6号位

棒球特长生升学具有其独特的优势和劣势,以下是对这两方面的详细分析: 获得更好的教育资源: 棒球特长生有机会通过棒球特长招生计划进入更好的学校。这些学校往往拥有更优质的教育资源,包括师资力量、教学设施、课程设置等&#…...

搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示

Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示...

数据分析案例-2024 年热门动漫数据集可视化分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…...

C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)

方案一:移除类库这些失效的引用,下载对应版本的dll(如有则不需要重复下载),重新添加引用 方案二:类库右键属性-调整目标框架版本(一般是降低版本) 方案三:调整类库编译顺…...

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现:实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…...

从 QWebEnginePage 打印文档

QWebEnginePage 是 Qt WebEngine 模块中的一个类,它提供了用于处理网页内容的接口。如果你想要打印 QWebEnginePage 中的内容,你可以使用 QPrinter 和 QPrintDialog 类来实现。 项目配置了 Qt WebEngine 模块,并且在你的.pro文件中包含了相应…...

初识Docker及管理Docker

Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术:Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器(阿里系)搜索镜像获取镜像查看镜像信息…...

【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)

2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…...

在golang中Sprintf和Printf 的区别

最近一直在学习golang这个编程语言,我们这里做一个笔记就是 Sprintf和Printf 的区别 fmt.Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。 fmt.Printf 根据格式化参数生成格式化的字符串并写入标准输出。由上面就可以知道,fmt.Sprintf返回的…...

策略模式原理与C++实现

定义 定义一些列算法,把他们一个个封装起来,并且使他们可以相互替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)。 C实现 在不考虑策略模式的情况…...

打包一个自己的Vivado IP核

写在前面 模块复用是逻辑设计人员必须掌握的一个基本功,通过将成熟模块打包成IP核,可实现重复利用,避免重复造轮子,大幅提高我们的开发效率。 接下来将之前设计的串口接收模块和串口发送模块打包成IP核,再分别调用…...

《昇思25天学习打卡营第05天|qingyun201003》

日期 心得 通过本节课的学习,学习到了通过网络获取数据集,处理数据集模型。数据模型层数据变换,模型参数解析和其对应代码中的API进行解析。 昇思MindSpore 基础入门学习 网络构建 (AI 代码解析) 网络构建 神经网络模型是由神经网络层和T…...

【Leetcode】二十一、前缀树 + 词典中最长的单词

文章目录 1、背景2、前缀树Trie3、leetcode208:实现Trie4、leetcode720:词典中最长的单词 1、背景 如上,以浏览器搜索时的自动匹配为例: 如果把所有搜索关键字放一个数组里,则:插入、搜索一个词条时&#x…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...