谢邀!

解决你这个问题的难点主要在生成作图所需的数据上,即连点成线的数据。为了解需要生成什么数据,可以先来看下方波图长什么样子,涉及了哪些元素。 />

观察这个示例图,一个周期内需要四个点。方波图组成元素有:x轴的范围,图中的x轴范围是0-20;

x轴上一个周期的长度,图中是1;

x轴上一个周期内高低位占比,图中各占50%;

y轴上一个周期内高低位的值,图中是1和0;

y轴上一个周期的初始位置是高位还是低位;

了解了这些,就可以编写绘图所需数据的生成函数了,代码如下:

def rect_square_wave(origin=0, size=20, ratio=0.5, x_unit=1, y0=0, y1=1):

"""

Parameters

----------

origin: number

x 起始位置

size: int

矩阵方波周期数

ratio: number

一个周期中第一部分占比

x_unit: number

x轴中一个周期的长度

y0: number

y轴上周期内第一部分的值

y1: number

y轴上周期内第二部分的值

Returns

-------

返回值可理解二维数据,示例如下:

[[ 0. , 0. ],

[ 0.5, 0. ],

[ 0.5, 2. ],

[ 1. , 2. ],

...

[19. , 0. ],

[19.5, 0. ],

[19.5, 2. ],

[20. , 2. ]]

"""

d = []

for start in range(origin, origin + x_unit * size, x_unit):

d.append((start, y0))

middle = start + x_unit * ratio

d.append((middle, y0))

d.append((middle, y1))

end = start + x_unit

d.append((end, y1))

return d

关于函数的使用,在注释部分已经作了详细说明,而占比主要使用的就是其中ratio参数。不一定足够完美,题主可以在了解了代码后,尝试自己修改。比如周期内的状态如果不止两种,可以修改下for循环中的数据生成代码,从而实现多种状态数据的生成。

下面就可以用它来生成数据和作图了。假设将要绘制的矩形方波图需满足如下几个要求:高低位分别是1和-1,起始位置为0,周期20,每个周期的长度为1,高低占比是0.3和0.7。示例代码如下:

import numpy as np

import matplotlib.pyplot as plt

d = np.array(rect_square_wave(origin=0, size=20, ratio=0.3, x_unit=1, y0=1, y1=-1))

plt.figure(figsize=(15, 5))

plt.plot(d[:, 0], d[:, 1])

需要说明下,因为plot函数接收的前两个参数分别x和y序列,而数据生成函数返回的是一个二维列表,所以这里使用了numpy的切片功能对数据做了些处理。

图形如下: />

回答结束,希望对你能有所帮助。

python画长方形-怎么用python 画出任意占空比的一串矩形方波呢?相关推荐

  1. python打印长方形_利用python打印出菱形、三角形以及矩形的方法实例

    前言 本文主要给大家介绍了关于利用python打印出菱形.三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows = int ...

  2. 用python画漂亮图片-使用 Python/matplotlib 画出漂亮的论文插图

    论文中画出各种绚烂的插图,都是用一些什么样的软件画出来的.本文介绍 Python 的绘图模块 matplotlib: Python plotting.适用于从 2D 到 3D,从标量到矢量的各种绘图. ...

  3. 用python画漂亮图-使用 Python/matplotlib 画出漂亮的论文插图

    论文中画出各种绚烂的插图,都是用一些什么样的软件画出来的.本文介绍 Python 的绘图模块 matplotlib: Python plotting.适用于从 2D 到 3D,从标量到矢量的各种绘图. ...

  4. python 用画布组件画直方图_7招用Python画出酷酷的|散点直方图

    原标题:7招用Python画出酷酷的|散点直方图 这是菜鸟学Python的第103篇原创文章 数据可视化前面已经写了2篇(,),今天我们接着来讲比较常见的散点图和直方图.这两种图用法上各有千秋,散点图 ...

  5. python怎么画长方形_Python如何绘制长方形?

    Python绘制长方形(矩形),目前来说,有2种基本方法,一种是matplotlib,专门用于可视化绘图,一种是turtle,专门用于动态绘图,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下: 01 ...

  6. 如何用python画长方形_Python如何绘制长方形

    用python绘制长方形的基本步骤: 首先先下载安装好python程序. 在我们自己的电脑上找到python 的IDLE工具. 2.然后打开IDLE,新建一个文件,命名为test1.py 相关推荐:& ...

  7. Python测试题(绘制柱状图、画出sin函数图像、散点图、pandas实现列表)

    Python 1. 绘制一个柱状图,写出代码,要求: x = [1,2,3,4,5,6,7,8] y = [3,1,4,5,8,9,7,2] 图形最后形式如下图所示: import matplotli ...

  8. python画超长图-利用Python画图,千变万化,各种画图技巧!

    如图所示,利用Python的turtle画了一个美国队长盾牌的标志: # 所需依赖:python3 sublime Python代码: # print 打印 print('hello world!') ...

  9. python中画圆的代码_Python编程12:Python画图之turtle库如何画圆

    #少儿编程# 从上一篇开始,我将和小朋友们一起用Python语言来画图.turtle库是Python语言中一个很流行的绘制图像的库,上一篇我们已经知道如何使用turtle库,如何使用turtle库的函 ...

最新文章

  1. 区块链相关论文研读1- 关于边缘计算
  2. 无电路板的微型电路制作
  3. poj 2482 Stars in Your Window (线段树扫描线)
  4. 柯南变声器的算法实现原理
  5. 百度运营专家:互联网运营必读书目(实用推荐)
  6. VTK:PolyData之ExtractOutsideSurface
  7. Emoji表情符号兼容方案(适用ios,android,wp等平台)
  8. SAP Spartacus Set Active BaseSite action执行的时间点 - Route路由触发方式
  9. 如何编写高性能的C#代码(四)字符串的另类骚操作
  10. 使用storm 实时计算_使用Storm进行可扩展的实时状态更新
  11. 前端学习(1285):node运行环境安装
  12. c++ 编译添加dll_Windows下osg编译
  13. 走进PV,UV,IP,session
  14. PREV-55 小计算器 (进制转换)
  15. 计算机科学与工程国际研讨会,2018年北京计算机科学与技术国际研讨会
  16. FME 坐标系使用(二)----关于Beijing54坐标系和Xian80坐标系说明的补充
  17. 实现MySQL读写分离---maxscale代理服务器配置(详解)
  18. 新广告法违规词、敏感词在线检测工具 淘宝违规词检测、查询
  19. 计算机u盘能直接拨出吗,电脑怎么直接拔出U盘而不丢失数据|电脑可以不用弹出设备直接拔出U盘吗...
  20. css 小尖角,css如何实现气泡的小尖角效果 css实现气泡的小尖角效果代码示例

热门文章

  1. python3 分割字符串(多分割符)
  2. Chrome 39-45
  3. C. Number of Ways(前缀和)
  4. Mybatis优缺点
  5. python函数之各种器
  6. 【Linux 线程】常用线程函数复习《一》
  7. SQLServer查询死锁
  8. 设计Optaplanner下实时规划服务的失败经历
  9. Oracle之数据操作__分组统计查询
  10. 转 MySQL问题排查工具介绍