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

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

XCTF-web-easyupload

试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...