【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 代码解释
- 使用了
NumPy来生成数据点 - 使用 Matplotlib 的
pyplot模块来绘制正弦函数的图形 - 调用不同的
plt函数,设置图形的大小、标题、轴标签、图例以及是否显示网格 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 代码解释
- import matplotlib.pyplot as plt: 这行代码是导入操作,它将
Matplotlib库中的pyplot模块导入到当前脚本中,并将其重命名为 plt。这样,在后续代码中就可以使用 plt 来调用pyplot模块提供的绘图函数 - plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置图形的分辨率,这里的值为 50,表示每英寸有 50 个像素点。图形的分辨率越高,生成的图像越清晰,但文件大小也会更大
- data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]: 这行代码定义了一个名为 data 的列表,其中包含了将要绘制直方图的数据。列表中的每个数字代表一个观测值
- plt.hist(data): 这行代码调用了
pyplot模块的 hist 函数,它接受一个数据序列,并计算该序列中每个数值的出现次数,然后绘制一个直方图。直方图的 x 轴表示数据值,y 轴表示每个数据值的出现频次 - 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 代码解释
- import matplotlib.pyplot as plt: 这行代码导入了
matplotlib库中的pyplot模块,该模块提供了绘制2D图形的函数。通过导入这个模块,我们可以使用 plt 这个别名来调用pyplot的函数 - import numpy as np: 这行代码导入了
numpy库,它是一个常用的科学计算库,这里我们用它来生成数值数组 - plt.figure(‘test’, dpi=50): 这行代码创建了一个新的图形实例,并将其命名为 ‘test’。dpi 参数设置了图形的分辨率,即每英寸的点数(dots per inch),这里设置为50
- x = np.arange(1, 20): 这行代码使用
numpy的arange函数创建了一个从1到19的数组,这个数组将作为散点图中点的 x 坐标。y = x: 这行代码将 y 设置为 x 的值,因此 y 也包含从1到19的整数,这个数组将作为散点图中点的 y 坐标 - plt.scatter(x, y, c=‘r’, marker=‘o’): 这行代码调用
scatter函数绘制散点图,其中 x 和 y 是散点的 x 和 y 坐标,c=‘r’ 指定了散点的颜色为红色,marker=‘o’ 指定了散点的标记形状为圆形 - 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学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
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…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
TCP/IP 网络编程 | 服务端 客户端的封装
设计模式 文章目录 设计模式一、socket.h 接口(interface)二、socket.cpp 实现(implementation)三、server.cpp 使用封装(main 函数)四、client.cpp 使用封装(main 函数)五、退出方法…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
