当前位置: 首页 > 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…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes&#xff0…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...