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

python画图|步进图基本教程

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

【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.kler.cn/news/342165.html

相关文章:

  • 【C语言系统编程】【第三部分:网络编程】3.3 实践与案例分析
  • 解读 AI 获客关键要素,开启营销新未来
  • 架构设计(14)分布式系统的CAP,BASE与ACID
  • JavaScript 网页设计案例详解
  • xtu oj 四位数
  • Mybatis-Plus分页和根据日期查询数据
  • HTML5+Css3(背景属性background)
  • 力扣1930. 长度为3的不同回文子序列
  • App推广新利器:Xinstall带你直达指定页面
  • PVC刻字膜高精度模切应用
  • 超像素提取加svm训练,鼠标点击选择标签(左键为正样本,右键为负样本)
  • 新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。
  • 垃圾回收(GC)是什么?深入理解Java(以主要版本为主线)的垃圾回收机制/策略,垃圾回收器的选择、实际案例分析
  • IDM6.42下载器最新版本,提速你的网络生活!
  • Vue3 中的 `replace` 属性:优化路由导航的利器
  • electron-vite_1搭建项目
  • 机器学习、深度学习评价指标汇总:TP、TN、FP、FN、AP、mAP、IoU、mAP@3、Prec@10、 Acc@10
  • SpringBoot框架在旅游管理中的应用与实践
  • gpg 密钥生成、导入、导出、自动输入密码
  • 五、创建型(建造者模式)