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

要制作自己的网站需要什么济南网站建设推荐q479185700强涵

要制作自己的网站需要什么,济南网站建设推荐q479185700强涵,百度渠道开户哪里找,本地东莞网站建设1 方波的圆周分解 在学习傅里叶变换的时候,有一个经典的示例是方波的分解。我们知道,方波可以分解为无数个正弦波的叠加。而正弦波,又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情,恐怕大家也花了不少时间。 学…

1 方波的圆周分解

在学习傅里叶变换的时候,有一个经典的示例是方波的分解。我们知道,方波可以分解为无数个正弦波的叠加。而正弦波,又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情,恐怕大家也花了不少时间。

学习了matplotlib之后,出于学以致用的考虑,我们能不能绘制出动画,来描述上述分解,便于我们来理解呢?

先上动图:
在这里插入图片描述

前面学习中已经掌握了matplotlib如何制作动画,以及如何绘制子图。在这个例子中我们将看到以下内容的实战:

  • 分割画布为子图
  • 绘制圆和波形图
  • 调整图像的轴比例
  • 隐藏图像的刻度轴
  • 设置线型和颜色
  • 生成和保存动画

2. 绘图源码

# -*- coding: utf-8 -*-import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np# 把半径放大3倍 画大一些
radius = 4 / np.pi * 3
t = np.deg2rad(list(range(0, 360, 1)))
tc = [tt + 8 for tt in t]# 一级圆
x = np.cos(t) * radius
y = np.sin(t) * radius# 二级圆
x1 = np.cos(3*t) * radius / 3
y1 = np.sin(3*t) * radius / 3# 三级圆
x2 = np.cos(5*t) * radius / 5
y2 = np.sin(5*t) * radius / 5# 四级圆
x3 = np.cos(7*t) * radius / 7
y3 = np.sin(7*t) * radius / 7# 子图的切割
fig, ax = plt.subplots(4, 1)
fig.set_size_inches(5, 8)
fig.tight_layout()
ax[0].set(xlim=(-2, 10), ylim=(-6, 6))#设置横纵坐标等比例且根据轴范围自适应
ax[0].set_aspect("equal", adjustable='datalim')
ax[0].set_axis_off() # 隐藏轴刻度线
# 绘制固定的那个圆
ax[0].plot(x, y, 'b-', linewidth=1)ax[1].set(xlim=(-2, 10), ylim=(-6, 6))
ax[1].set_aspect("equal", adjustable='datalim')
ax[1].set_axis_off()
ax[1].plot(x, y, 'b-', linewidth=1)ax[2].set(xlim=(-2, 10), ylim=(-6, 6))
ax[2].set_aspect("equal", adjustable='datalim')
ax[2].set_axis_off()
ax[2].plot(x, y, 'b-', linewidth=1)ax[3].set(xlim=(-2, 10), ylim=(-6, 6))
ax[3].set_aspect("equal", adjustable='datalim')
ax[3].set_axis_off()
ax[3].plot(x, y, 'b-', linewidth=1)# 动画准备
artists = []
for i in range(0, len(t)):# container用来存储每帧要绘制的内容,通过+=叠加container = []container += ax[0].plot([0, x[i]], [0, y[i]], 'b-', linewidth=1)yy = list(y[i:len(y)])yy.extend(y[0:i])container += ax[0].plot(tc, yy, color='blue', linewidth=1)container += ax[0].plot([x[i], tc[0]], [y[i], yy[0]], 'b--', linewidth=1)container += ax[1].plot([0, x[i]], [0, y[i]], 'b-', linewidth=1)container += ax[1].plot([x1i + x[i] for x1i in x1], [y1i + y[i] for y1i in y1], 'r-', linewidth=1)y_y1 = y+y1yy1 = list(y_y1[i:len(y_y1)])yy1.extend(y_y1[0:i])container += ax[1].plot([x[i], x[i]+x1[i]], [y[i], y[i]+y1[i]], 'r-', linewidth=1)container += ax[1].plot(tc, yy1, color='red', linewidth=1)container += ax[1].plot([x[i]+x1[i], tc[0]], [y[i]+y1[i], yy1[0]], 'r--', linewidth=1)container += ax[2].plot([0, x[i]], [0, y[i]], 'b-', linewidth=1)container += ax[2].plot([x1i + x[i] for x1i in x1], [y1i + y[i] for y1i in y1], 'r-', linewidth=1)container += ax[2].plot([x[i], x[i] + x1[i]], [y[i], y[i] + y1[i]], 'r-', linewidth=1)container += ax[2].plot([x2i + x1[i] + x[i] for x2i in x2], [y2i + y1[i] + y[i] for y2i in y2], 'g-', linewidth=1)container += ax[2].plot([x[i] + x1[i], x[i] + x1[i] + x2[i]], [y[i] + y1[i], y[i] + y1[i] + y2[i]], 'g-',linewidth=1)y_y2 = y + y1 + y2yy2 = list(y_y2[i:len(y_y2)])yy2.extend(y_y2[0:i])container += ax[2].plot(tc, yy2, color='green', linewidth=1)container += ax[2].plot([x[i] + x1[i] + x2[i], tc[0]], [y[i] + y1[i] + y2[i], yy2[0]], 'g--',linewidth=1)container += ax[3].plot([0, x[i]], [0, y[i]], 'b-', linewidth=1)container += ax[3].plot([x1i + x[i] for x1i in x1], [y1i + y[i] for y1i in y1], 'r-', linewidth=1)container += ax[3].plot([x[i], x[i] + x1[i]], [y[i], y[i] + y1[i]], 'r-', linewidth=1)container += ax[3].plot([x2i + x1[i] + x[i] for x2i in x2], [y2i + y1[i] + y[i] for y2i in y2], 'g-', linewidth=1)container += ax[3].plot([x[i] + x1[i], x[i] + x1[i] + x2[i]], [y[i] + y1[i], y[i] + y1[i] + y2[i]], 'g-',linewidth=1)container += ax[3].plot([x3i + x2[i] + x1[i] + x[i] for x3i in x3], [y3i + y2[i] + y1[i] + y[i] for y3i in y3],'c-', linewidth=1)container += ax[3].plot([x[i] + x1[i] + x2[i], x[i] + x1[i] + x2[i] + x3[i]],[y[i] + y1[i] + y2[i], y[i] + y1[i] + y2[i] + y3[i]], 'c-', linewidth=1)y_y3 = y + y1 + y2 + y3yy3 = list(y_y3[i:len(y_y3)])yy3.extend(y_y3[0:i])container += ax[3].plot(tc, yy3, color='cyan', linewidth=1)container += ax[3].plot([x[i] + x1[i] + x2[i] + x3[i], tc[0]], [y[i] + y1[i] + y2[i] + y3[i], yy3[0]],'c--', linewidth=1)artists.append(container)# 生成并保存动图
ani = animation.ArtistAnimation(fig=fig, artists=artists, interval=40)
ani.save(filename="c:/users/admin/desktop/fourier.gif", writer="pillow")
plt.show()

这里还有一些优化空间,例如还没有为这幅图加上文字说明(涉及 LaTeX \LaTeX LATEX输入),以及也没有绘制出方波本身。作为一个练习,小白觉得主体的内容已经足够,留待后续优化。

在这里插入图片描述

http://www.15wanjia.com/news/181838.html

相关文章:

  • 电子商务网站建设与综合实践网站建设初稿
  • 网站开发技术对比品网站建设
  • 旅游网站设计模板图片简单的网站php开发教程
  • 无锡梅村网站建设佛山市企业网站建设哪家好
  • 网站建设业务客户来源廉政建设网评文章网站
  • 天津黑曼巴网站建设门户网站什么意思
  • 电子商务网站的管理建站行业获客
  • 无障碍网站开发全屋定制加盟品牌加盟网
  • 知名室内设计网站做视频类网站需要哪些许可证
  • 如何免费做网站推广服务器租用多少钱一月
  • 网站建设 百度文库地方网站系统
  • 搞一个公司网站得多少钱wordpress 地址调用
  • 兰州网站建设哪家好公众号开发技术风险
  • 用php制作一个个人信息网站wordpress免费汽车配件企业主题
  • 风景旅游网站建设的设计思路巴中企业网站建设
  • 做挂的网站郑州网站建设知乎
  • 门户网站系统架构资源分享wordpress
  • jsp体育用品网站建设crm管理系统登录
  • 济南网站制作公司wordpress自动选择添加标签页
  • 网站建设在整体布局有哪些要求彩票网站模版
  • aspcms 网站无法显示该页面免费跨境电商网站
  • 高密做网站佛山新网站制作公司
  • 网站内页的设计网络设计工程师是做什么的
  • 上海seo网站优化个人免费发布房源信息
  • 网站建设 淘宝描述psd万象城网站建设
  • 招网站开发人员杭州做网站多少钱
  • 安顺市住房与城乡建设局网站担保公司网站建设方案
  • 一级a做爰电影免费观看网站中国500强企业排名完整版
  • 网站建设公司招人现在建设校园网站用什么软件
  • 河南建筑业城乡建设网站查询丰台网站建设