python画图|步进图基本教程

news2025/2/4 4:02:55

有些时候,画顺滑的图形不能满足表达需求,可能需要使用步进图形来辅助表达。

【1】官网教程

首先我们乖乖进入官网,使用下述链接直达:

Step Demo — Matplotlib 3.9.2 documentation

这里有两个图形作为示例,为高效学习,我们先掌握第一个,对代码进行详细解读。

【2】代码解读

首先引入计算和画图模块:numpy和matplotlib。

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

然后展开变量定义:

x = np.arange(14) #定义自变量
y = np.sin(x / 2) #定义因变量

之后就定义了画步进图,一共三种风格:

plt.step(x, y + 2, label='pre (default)') #画第一个步进图,类型为pre
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3) #输出步进图

plt.step(x, y + 1, where='mid', label='mid') #画第二个步进图,类型为mid
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3) #输出步进图

plt.step(x, y, where='post', label='post') #画第三个步进图,类型为post
plt.plot(x, y, 'o--', color='grey', alpha=0.3) #输出步进图

再之后给图形增加网格,设置图例名:

plt.grid(axis='x', color='0.95') #画网格
plt.legend(title='Parameter where:') #设置图例名
plt.title('plt.step(where=...)') #设置图名

最后一步,输出图形:

plt.show() #输出图形

整个代码的核心在于plt.step()函数,具体链接如下:

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.step.html#matplotlib.pyplot.step

在 plt.step()函数中,有如下要素:

matplotlib.pyplot.step(x, y, *args, where='pre', data=None, **kwargs)

输出图形为:

图1

x:自变量

y:因变量

where:三种类型,pre((x[i-1], x[i])区间取值 y[i]),mid((x[i-0.5], x[i+0.5])区间取值 y[i]),post((x[i], x[i+1])区间取值 y[i]

data:标签名称

其他。

至此,增减注释后的完整代码为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

x = np.arange(14) #定义自变量
y = np.sin(x / 2) #定义因变量

plt.step(x, y + 2, label='pre (default)') #画第一个步进图,类型为pre
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3) #输出步进图

plt.step(x, y + 1, where='mid', label='mid') #画第二个步进图,类型为mid
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3) #输出步进图

plt.step(x, y, where='post', label='post') #画第三个步进图,类型为post
plt.plot(x, y, 'o--', color='grey', alpha=0.3) #输出步进图

plt.grid(axis='x', color='0.95') #画网格
plt.legend(title='Parameter where:') #设置图例名
plt.title('plt.step(where=...)') #设置图名
plt.show() #输出图形

【3】代码改写

精简代码,全部写到一个plt.step()函数中:

plt.step(x, y + 2, x,y+1,x,y,label='mid') #画步进图,类型为pre
plt.plot(x, y + 2, x,y+1,x,y,'o--', color='grey', alpha=0.3) #输出步进图

 此时的输出结果为:

图2

可见,所有图形同时输出了,不过采用了mid也就是中间步进的方式,输出的实现图也仅仅是最后一个图形采用了虚线。

此时的完整代码为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算

x = np.arange(14) #定义自变量
y = np.sin(x / 2) #定义因变量

plt.step(x, y + 2, x,y+1,x,y,label='mid') #画步进图,类型为pre
plt.plot(x, y + 2, x,y+1,x,y,'o--', color='grey', alpha=0.3) #输出步进图

plt.grid(axis='x', color='0.95') #画网格
plt.legend(title='Parameter where:') #设置图例名
plt.title('plt.step(where=...)') #设置图名
plt.show() #输出图形

【4】其他更改

在其余位置,尝试更改线型和输出透明度:

plt.plot(x, y + 2,'--',x,y+1,x,y,'o--', color='g', alpha=0.9) #输出步进图

y+2后增加“--”标识,用以绘制虚线。

同时颜色也修改为了green绿色,

此时的输出图形为:

图3

 线型设置可参考下述链接:

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation

【5】总结

学习了step步进图的基本画法,掌握了线型设置和颜色修改的技巧。

 

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

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

相关文章

第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例

JPA教程 - JPA查询OrderBy两个属性示例 以下代码显示如何按两个属性排序,一个升序,另一个降序。 List l em.createQuery("SELECT e FROM Professor e " "JOIN e.department d ORDER BY d.name, e.name DESC").getResultList();例子…

传感器模块编程实践(二)W5500 SPI转以太网模块简介及驱动源码

文章目录 一.概要二.W5500芯片介绍W5500通讯协议介绍 三.W5500模块介绍四.W5500模块原理图五.W5500以太网模通讯实验六.CubeMX工程源代码下载七.小结 一.概要 我们介绍过单片机的以太网系统一般是由:单片机MACPHYRJ45。有些单片机比如STM32F407VET6芯片内部自带MAC…

如何在Allegro中创建实现可以走线但不能铺铜的区域

第一步,点击Setup-Areas-Shape Keepout,在需要禁止铺铜的区域画好禁示区域; 第二步,画好后,此区域内的动态铺铜会自动避让,而走线不会报错。 参考: Cadence allegro软件如何设置区域为禁止铺铜…

十、kotlin的协程

协程 基本概念定义组成挂起和恢复结构化并发协程构建器作用域构建器挂起函数阻塞与非阻塞runBlocking全局协程像守护线程 Job的生命周期 常用函数延时和等待启动和取消启动取消 暂停 协程启动调度器启动方式启动模式线程上下文继承的定义继承的公式 协程取消与超时取消挂起点取…

vite学习教程02、vite+vue2配置环境变量

文章目录 前言1、安装依赖2、配置环境变量3、应用环境变量4、运行和构建项目资料获取 前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&#xff1…

回归树练习,泰坦尼克号幸存者的预测

回归树练习,泰坦尼克号幸存者的预测 数据集下载地址 https://download.csdn.net/download/AnalogElectronic/89846327 我们来看看train.csv文件,它包含了891个样本,每个样本代表一个乘客。这些样本的数据包括乘客的年龄(Age&…

Allegro 中如何关闭DRC检查

setup--constraints--modes 在这里就能选择关闭 Line to Route Keepout Spacing 的DRC检查了

懒洋洋浅谈--机器学习框架

机器学习,这个词汇听起来就像是科幻小说里那些能够自我进化的机器人一样神秘而强大。但别担心,让我用一种更接地气的方式来揭开它的神秘面纱。 关于机器学习,有一个非常有意思的介绍误闯机器学习(第一关-概念和流程)-C…

Redis:set类型

Redis:set类型 set命令SADDSMEMBERSSISMEMBERSCARDSPOPSRANDMEMBERSMOVESREM 集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码intsethashtable 当把一些关联的数据放到一起,就构成一个集合。在Redis中,使用set类型维护…

为何没有Deepin 24了

今天在Deepin社区公布了一则消息,未来将调整Deepin社区版的发布周期和命名规则,原文内容如下: 首先说重点,未来 deepin 社区将推行以“年”为基准单位来界定版本号的策略: 每年发布1个大版本,提供2个重要…

MISC - 第12天(pyc反编译、图片宽高复原、Ziperello暴力破解工具)

前言 各位师傅大家好,我是qmx_07,今天继续讲解MISC的相关知识 喵喵喵 附件信息: 尝试了常规的binwalk,foremost扫描是否有隐藏文件、均失败 在stegsolve工具发现 Red plan 0、 Blue plan 0、 Green plan 0 有问题,怀疑是LSB隐写 Data Extr…

ISO IEC 18004 2015 PDF 文字版下载

ISO_IEC_18004_2015_en-US - 道客巴巴 (doc88.com)https://www.doc88.com/p-67816330893254.html

CPython Internals English PDF 下载地址分享

CPython Internals Your Guide to the Python 3 Interpreter.pdf官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供CPython Internals Your Guide to the Python 3 Interpreter.pdf最新版正式版官方版绿色版下载,CPython Internals Your Guide to the Pytho…

【图论】树剖(上):重链剖分

一、前置知识清单 深度优先搜索DFS 点我复习图的存储 复习链接敬请期待树状数组 点我复习 二、树剖简介 树剖(树链剖分),是一种把树划分成链的算法,该算法分为重链剖分和长链剖分。 本文仅讨论重链剖分,长链剖分目前…

基于SpringBoot的学习资源共享平台

运行环境: jdk8tomcat9mysqlIntelliJ IDEAmavennodejs 设计选用前后端分离的单体架构方式 后端:SpringBootMybatis-PluslogbackElasticsearchRedisMySQLJwtsmtp阿里云OSS 前端:WebPackVueJsAnt Designaxios 主要模块:反馈管理、资源管理、…

Django学习笔记二:数据库操作详解

Django框架提供了一个功能强大的ORM(对象关系映射)系统,使得开发者可以使用Python代码来操作数据库,而无需编写复杂的SQL语句。以下是Django数据库操作的一些基本概念和方法: 模型定义 在Django中,模型是…

大模型基础:基本概念、Prompt、RAG、Agent及多模态

随着大模型的迅猛发展,LLM 作为人工智能的核心力量,正以前所未有的方式重塑着我们的生活、学习和工作。无论是智能语音助手、自动驾驶汽车,还是智能决策系统,大模型都是幕后英雄,让这些看似不可思议的事情变为可能。本…

Spring源码-AOP具体源码

1.类ProxyFactory 核心方法:getProxy 1.DefaultAopProxyFactory#createAopProxy 判断使用JDK还是CGLIB动态代理的代码如下: Override public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException {// 如果ProxyFactory的isOp…

北京市大兴区启动乐享生活 寻味大兴 美食嘉年华 系列促销费活动

北京市大兴区启动乐享生活 寻味大兴 系列促销费活动 区商务局副局长 兰莉 致开幕辞 区餐饮行业协会会长 董志明 介绍活动内容 2024年9月30日,由大兴区商务局主办、大兴区餐饮行业协会承办,并得到高米店街道和大兴绿地缤纷城大力支持的“乐享生活 寻味大…

快速排序的非递归实现:借助栈实现、借助队列实现

目录 用栈实现快速排序 1.用栈实现非递归快速排序的思路步骤 1.1.思路步骤 2.用栈实现非递归快速排序的代码 3.用栈实现非递归快速排序的整个工程 3.1.QuickSortNonR.h 3.2.QuickSortNonR.c 3.3.Stack.h 3.4.Stack.c 用队列实现非递归快速排序 1.用队列实现非递归快…