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

python之matplotlib (1 介绍及基本用法)

介绍

matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。

同样matplotlib的安装也和numpy和pandas一样,具体语言如下:(在电脑终端执行)

python -m pip install --user matplotlib

基本用法

利用matplotlib绘图方法很多,网上的方法也是各种各样,起初我看到这些方法很头疼,并不明白为何这样画。其实,对于各种绘图方法来说,只需掌握其内在的逻辑你就会明白不同方法的内涵。

我总结了网上绘图常见的四种方法,如下:

import matplotlib.pyplot as pltx=[1,4,9,16,25]#第一种方法
plt.figure()
plt.plot(x)#第二种方法
fig=plt.figure()
ax=plt.gca()
ax.plot(x)#第三种方法
fig=plt.figure()
ax=fig.add_axes([0.1,0.1,0.7,0.7])
ax.plot(x)#第四种方法
fig,ax=plt.subplots()
ax.plot(x)plt.show()

这四种方法起到的作用大致上是相通的。

第一种方法:plt.figure()是起到了开辟一个窗口的作用,这个窗口里面什么都没有,仅仅是一个窗口。plt.plot()是在这个窗口中进行画图,在画图之前系统默认给它分配了(即默认创建)一个二维坐标轴平面,这个图像最终在这个坐标轴中呈现。

第二种方法:同样,plt.figure()开辟了一个窗口,同时将这个窗口赋给了变量fig。plt.gca()(get current axes)的作用是在当前的窗口中捕捉坐标轴平面,将这个坐标轴平面赋给变量ax。(如果当前窗口中没有,那就建立一个新的)然后在ax中进行作图,即ax.plot()

第三种方法:第三种方法和第二种方法很相似,ax=fig.add_axes([     ])的作用就是创建一个坐标轴,第一种方法在这里是省掉了,系统默认创建了一个,第二种虽说是多了一句但是是捕捉坐标轴,因为本身就没有所以归根结底还是创建了一个,这种方法就是明着说要创建一个坐标轴。

第四种方法:这个方法比较简单省事,一句话干了两句话的事。plt.subplots()是建立了一个窗口,而此窗口并未简单的彼窗口,subplots可以在这个窗口中布置子图的格局,换句话说如果你想在一个窗口中画多个子图,每个子图既独立存在又互不干扰,它就能实现这个功能。但在这里,我们并未指定它的参数,所以它默认是创建了一个子图,即整个窗口就画一个图。那么它的返回值fig指的是整个窗口,ax是所有的子图的坐标轴平面体系。因为你只创建了一个,所以ax在这里就是一个坐标轴平面,ax.plot()也就是在这仅有的一个坐标轴平面内画图。

归根结底,在matplotlib中画图可以分为四部分:1.创建窗口 2.创建坐标轴 3.画图 4.修剪

如果subplots多个子图,见下:

import matplotlib.pyplot as pltx=[1,4,9,16,25]fig,ax=plt.subplots(2,2)
ax[0,0].plot(x)
plt.show()

我们建立了一个2×2布局的窗口,这个窗口是fig,而里面的每一个坐标轴平面是ax,我们在ax的第一个坐标轴中画图即:ax[0,0].plot(x)

相关文章:

python之matplotlib (1 介绍及基本用法)

介绍 matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。 同样matplotlib的安…...

ROS2常用指令

ROS2(Robot Operating System 2)是一个用于机器人软件开发的灵活框架,它提供了一套丰富的工具和库来支持机器人的开发、模拟、部署和测试。ROS2的常用指令可以大致分为几个类别,包括功能包管理、节点管理、话题管理、服务管理、动…...

SQL注入(原理、分类、union、POST注入)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…...

【勒索病毒应急响应流程】

概述 不同应急事件响应方式不同,建议大家阅读以下案例,解决自己当前的困扰,当然也可以根据自己的经验对文章进行补充和修正,欢迎在评论区留言。 案例1 事件概述 某安服团队接到某政府部门的远程应急响应求助,要求对被勒索服务器进行排查分析并溯源。 排查溯源 1、应…...

C ++初阶:C++入门级知识点

目录 🌞0.前言 🚈1.C输入输出 🚈2.缺省参数 🚝2.1全缺省参数 🚝2.2半缺省参数 🚈3.函数重载 🚝3.1参数类型不同 🚝 3.2参数个数不同 🚝3.3参数类型顺序不同 ​…...

php中如何高效地实现一个函数以判断给定日期是否位于多个预定义的时间范围内,同时确保代码的可读性、可维护性和性能优化

背景信息: 我有一个包含多个时间范围的数组,每个时间范围由起始日期和结束日期组成(目前以字符串形式给出),例如: $ranges [[start > 2023-01-01, end > 2023-03-31],[start > 2023-06-01, end …...

存在重复元素 II(LeetCode)

题目 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题 """ 时间复杂度…...

认知杂谈21

今天分享 有人说的一段争议性的话 I I 自在之“坏”&#xff1a;真实自我的绽放 在社交场合中&#xff0c;听到“他不是个好人”这句话可能会让人惊讶&#xff0c;但其实被贴上“坏人”标签的人往往敢于跳出规则框架&#xff0c;展现真实自我。他们不做表面和谐的牺牲品&am…...

2024前端面试题-工程化篇

1.webpack&#xff08;模块打包工具&#xff09;五大核心 Entry入口&#xff0c;Output定义输出路径和命名规则&#xff0c;Loader模块转换器&#xff0c;Plugin扩展插件&#xff0c;Mode模式&#xff08;Webpack使用相应模式的配置&#xff09; 2.谈一谈你对Loader和Plugin的…...

【附源码】Python :PYQT界面点击按钮随机变色

系列文章目录 Python 界面学习&#xff1a;PYQT界面点击按钮随机变色 文章目录 系列文章目录一、项目需求二、源代码三、代码分析3.1 导入模块&#xff1a;3.2 定义App类&#xff1a;3.3 构造函数&#xff1a;3.4 初始化用户界面&#xff1a;3.5 设置窗口属性&#xff1a;3.6 …...

[Qt][QSS][下]详细讲解

目录 1.样式属性0.前言1.盒模型(Box Model) 2.常用控件样式属性1.按钮2.复选框3.单选框4.输入框5.列表6.菜单栏7.注意 1.样式属性 0.前言 QSS中的样式属性⾮常多&#xff0c;不需要都记住&#xff0c;核⼼原则是⽤到了就去查 ⼤部分的属性和CSS是⾮常相似的 QSS中有些属性&am…...

RAII在实现webserver这个项目中是怎么体现的?起到了什么作用

在WebServer项目中&#xff0c;RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;即资源获取即初始化&#xff09;是一种重要的资源管理策略&#xff0c;它主要通过智能指针、锁、文件句柄等对象的生命周期来管理资源的分配和释放。RAII在WebServer项目中的…...

QT下显示自己派生的QWidget界面(提升为)

在实际开发过程中&#xff0c;我们可能有这样的需求&#xff0c;自己绘制一个仪表盘界面&#xff0c;然后将其贴到主界面上方。 这个时候就会用到“提升为”这个功能&#xff0c;该功能目的是将QWidget提升为自己派生的QWdiget子类&#xff0c;具体操作为&#xff0c;在主界面…...

jvm监控工具一览

下面是对 BTrace、JAD、JMAP、JSTAT、JSTACK、JINFO 以及 MARK 工具的比较表&#xff1a; 工具/属性功能适用场景使用难度是否侵入式是否需要重启 JVMBTrace动态跟踪和监控 Java 应用程序性能分析、故障排查、日志收集、安全监控中等无侵入式否JAD反编译 Java 字节码文件&…...

使用 Visual Studio 编辑器作为 DailyNotes 的 markdown 编辑器

DailyNotes 是我使用过的最优秀的日常笔记管理工具&#xff0c;为它配置一个好的 markdown 编辑器&#xff0c;可以大幅提升效率。 除了使用 Typora 作为 markdown 编辑器&#xff0c;Visual Studio Code 也是一个非常不错的选择&#xff0c;令人惊喜的是&#xff0c;它也支持…...

Linux下进程间的通信--管道

关于进程间的通信 Linux进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&#xff09;是指在多个进程之间传输数据或信号的一些方法。由于Linux中的进程有各自独立的地址空间&#xff0c;因此它们不能直接访问对方的内存。为了实现进程间的通信&#xff0c;…...

【算法】汉诺塔、顺序查找和二分查找法、冒泡排序、插入排序、选择排序

1 时间装饰器 2 汉诺塔 3 顺序查找和二分查找法 4 冒泡排序 5 插入排序 6 选择排序 1 时间装饰器 import timedef cal_time(func):def wrapper(*args, **kwargs):t1 time.time()result func(*args, **kwargs)t2 time.time()print("%s running time: %s secs." % …...

Mac电脑遇到DNS解析失败,ip可以访问,域名无法访问

当Mac电脑遇到DNS解析失败的问题时&#xff0c;可以尝试以下几个解决方法‌&#xff1a; 1.检查网络连接‌&#xff1a;确保Mac已连接到可用的网络&#xff0c;并且网络连接正常。可以尝试重新连接Wi-Fi或使用有线连接来排除网络问题。 2.清除DNS缓存‌&#xff1a;打开终端应…...

走进 “星星的孩子” 的世界:理解与关爱儿童自闭症

在这个充满生机与活力的世界里&#xff0c;有一群特殊的孩子&#xff0c;他们仿佛来自遥远的星球&#xff0c;沉浸在自己的独特世界中&#xff0c;难以与外界进行有效的沟通和互动。他们是自闭症儿童&#xff0c;也被称为 “星星的孩子”。 自闭症&#xff0c;又称孤独症谱系障…...

【学习笔记】7、存储器、复杂可编程器件和现场可编程门阵列

可编程逻辑器件PLD复杂可编程逻辑器件CPLD现场可编程门阵列FPGA 7.1 只读存储器&#xff08;ROM&#xff09; 7.1.1 ROM的结构 ROM存储器 存储阵列 地址译码器 输出控制电路 存储阵列&#xff0c;由许多存储单元&#xff08;1bit&#xff09;组成。每次读出一组数据&…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...