Matplotlib是什么

news2024/11/26 22:48:48

Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy  ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂,深受广大技术爱好者喜爱。

NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构。

Matplotlib 由 John D. Hunter 在 2002 年开始编写, 2003 年 Matplotlib 发布了第一个版本,并加入了 BSD 开源软件组织。Matplotlib 1.4 是最后一个支持 Python 2 的版本,它的最新版本 3.1.1 已于 2019 年 7 月 1 日发布。
 

matplotlib logo

图1:Matplotlib 图标


Matplotlib 提供了一个套面向绘图对象编程的 API 接口,能够很轻松地实现各种图像的绘制,并且它可以配合 Python GUI 工具(如 PyQt、Tkinter 等)在应用程序中嵌入图形。同时 Matplotlib 也支持以脚本的形式嵌入到 IPython shell、Jupyter 笔记本、web 应用服务器中使用。

Matplotlib架构组成

Matplotlib 由三个不同的层次结构组成,分别是脚本层、美工层和后端层。
 

Matplotlib架构图

图2:Matplotlib架构图

1) 脚本层

脚本层是 Matplotlib 结构中的最顶层。我们编写的绘图代码大部分代码都在该层运行,它的主要工作是负责生成图形与坐标系。

2) 美工层

美工层是结构中的第二层,它提供了绘制图形的元素时的给各种功能,例如,绘制标题、轴标签、坐标刻度等。

3) 后端层

后端层是 Matplotlib 最底层,它定义了三个基本类,首先是 FigureCanvas(图层画布类),它提供了绘图所需的画布,其次是 Renderer(绘图操作类),它提供了在画布上进行绘图的各种方法,最后是 Event(事件处理类),它提供了用来处理鼠标和键盘事件的方法。

Matplotlib图形组成

Matplotlib 生成的图形主要由以下几个部分构成:
 

Matplotlib图像组成

图3:Matplotlib图像组成

  • Figure:指整个图形,您可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等;
  • Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区;
  • Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签;
  • Artist:您在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等。

Matplotlib功能扩展包

许多第三方工具包都对 Matplotlib 进行了功能扩展,其中有些安装包需要单独安装,也有一些允许与 Matplotlib 一起安装。常见的工具包如下:

  • Basemap:这是一个地图绘制工具包,其中包含多个地图投影,海岸线和国界线;
  • Cartopy:这是一个映射库,包含面向对象的映射投影定义,以及任意点、线、面的图像转换能力;
  • Excel tools: 这是 Matplotlib 为了实现与 Microsoft Excel 交换数据而提供的工具;
  • Mplot3d:它用于 3D 绘图;
  • Natgrid:这是 Natgrid 库的接口,用于对间隔数据进行不规则的网格化处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/753448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NAT转换网关实现IP地址转换,保障数据采集

NAT转换网关(Network Address Translation Gateway)是物通博联推出的一款物联网设备,用于在不同网络之间进行网络地址转换(Network Address Translation),以实现IP地址的转换和映射。 物通博联NAT转换网关…

再谈操作系统

文章目录 ⭐1. 什么是操作系统🌟2. 为什么要有操作系统🌠3. 操作系统如何管理 ⭐1. 什么是操作系统 先入为主,操作系统是一款管理软件 操作系统分为两部分 操作系统本身,主要做一些进程管理、内存管理、文件管理、驱动管理等工…

【AGC】删除控制台应用重建报错url is null问题

【关键字】 AGC、agconnect-services.json、InvalidParameterException 【问题描述】 有开发者反馈在删除了AppGallery Connect中某个应用及其对应的项目,再重新创建相同的应用(包名一致),并且重新下载agconnect-services.json到…

【c++修行之路】IO流架构及使用

文章目录 前言输入输出库文件读写序列化与反序列化结语 前言 大家好久不见,今天一起来学习c中的IO流。 输入输出库 这两张架构图略显复杂,这里给出一张比较清楚的IO流架构图: 也就是说,我们平时使用的诸如cin、cout、cerr、cl…

2023华为产品测评官-开发者之声 | 华为云CodeArts征文活动,多重好礼邀您发声!

"2023华为产品测评官-开发者之声"活动激发了众多开发者和技术爱好者的热情,他们纷纷递交了精心编写的产品测评报告。活动社群充满活力,参与者们热衷于交流讨论,互相帮助解决问题,一起探索云技术的无限可能。…

C# Nullable学习

在C#1.x,一个值类型变量是不可以被赋予null值的,否则会产生异常。 在C#2.0中,提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选字段以及很多方面都有帮…

【云原生】Docker网络Overlay搭建Consul实现跨主机通信

目录 1.overlay网络是什么? 实现overlay环境 1.overlay网络是什么? 在Docker中,Overlay网络是一种容器网络驱动程序,它允许在多个Docker主机上创建一个虚拟网络,使得容器可以通过这个网络相互通信。 Overlay网络使用…

linux - bc 命令安装

一.引言 迁移新机器后发现没有 bc 命令,之前 shell 脚本的一些计算逻辑会出错,下面快速安装一下。 二.安装 bc 请确保在 root 权限下执行该命令: sudo yum install bc 出现下述界面即安装成功: 三.测试 bc 测试下脚本里 % 的…

Nautilus Chain 更换全新测试网,主网即将在不久上线

目前,Nautilus Chain 正在为主网上线前的最后阶段做准备,据悉该链更新了全新的测试网,在此前版本的测试网的基础上进行了全新的技术升级,最新测试网版本与生态发展的技术规划更为贴近。本次测试网升级将会是最后一次测试网版本的迭…

ylb-接口8手机号注册

总览: 在web模块下的service包,补充短信接口(SmsService):检查用户发送的验证码是否正确 package com.bjpowernode.front.service;public interface SmsService {/*** param phone 手机号* return true:发…

聚集十二罗汉,探索宇宙本质,马斯克神秘的xAI

作者 | 德新编辑 | 王博 马斯克组团入局通用人工智能。 7月12日,马斯克发推官宣成立新的公司xAI。据官网介绍,这是一家试图「探索理解宇宙本质」的公司。 新公司公布了12名首批成员,除了马斯克外,他们曾经在「AlphaStar、AlphaCod…

springboot线上买菜系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

【Linux进阶之路】冯诺依曼体系结构与操作系统

前言 存储器与CPU 在正式介绍今天的话题之前,博主先来带大家搞清楚一些硬件的概念,方便接下来的理解。 存储器,顾名思义就是用来存储的设备,那在计算机里,存储器包含什么呢? 答:内存 外存&a…

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x,y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…

TCP协议下的三大协议的验证实验

系列文章目录 数通王国历险记(1) 前言 一,我们要先知道PDU是什么? 二、TCP协议下的三大协议的验证实验 1.FTP的验证实验 1,拓扑图 2.将lsw4配置一下 3,FTP服务器端开启FTP服务: 4&#x…

Jenkins的几种安装方式以及邮件配置

目录 Jenkins介绍 Jenkins下载、安装 一、通过war包安装 二、通过docker安装 jenkins 容器中添加 git, maven 等组件 jenkins 容器中的公钥私钥 在 jenkins 容器中调用 docker 简单的方式启动 Docker server REST API 一个 jenkins 示例 三、通过Homebrew安装 访问Je…

静态库 的制作与使用

文章目录 重要命令程序组成静态库制作流程静态库的使用 gcc main.c -o APP -I(i) 头文件路径 -l(L) 库名字(xxx) -L 库路径 重要命令 gcc -o -I(大写i) -l(小写L) -L cp:复制文件 -r 递归,用于复制文件夹所有文件 mv:移动文件 程…

代码随想录算法训练营第53天 | 动态规划 part14 ● 1143.最长公共子序列 ●1035.不相交的线 ● 53. 最大子序和

# 1143.最长公共子序列 和718最长公共子数组 对比 本题可以不连续 int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0));for (int i 1; i < text1.size(); i) {for…

陆地生态系统植被净初级生产力(NPP)—CASA模型

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

Swagger、knife4j简介

Swagger 简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(API Documentation & Design Tools for Teams | Swagger)。 它的主要作用是&#xff1a; 使得前后端分离开发更加方便&#xff0c;有利于团队协作 接口的…