matplotlib绘制一些简单的函数图像

1 绘制x 的平方

法1:

#y=x*x
import matplotlib.pyplot as plt
import numpy
#x轴
x = numpy.linspace(-10,10,200)
#y轴
y = [i**2 for i in x]

#绘制
plt.plot(x,y)
plt.show()

法2

#y=x*x
import matplotlib.pyplot as plt
import numpy
#x轴
x = numpy.linspace(-10,10,200)
# x.shape

y = []
for i in x:
    y_1 = i**2
    y.append(y_1)
plt.plot(x,y,label = "x*x")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()

结果

请添加图片描述

2 绘制余弦函数cos(x)

import numpy as np
import matplotlib.pyplot as plt

#x轴
x = np.arange(-2*(np.pi),2*(np.pi),0.001)

#y轴 
y = np.cos(x)
plt.grid(linestyle=':')
plt.plot(x,y,label="cos")

plt.xlabel("x")
plt.ylabel("y")
plt.title("cos")
plt.legend()
plt.show()

结果请添加图片描述

3 绘制 cos(x)+cos(3x)函数

(3和4用jupyter notebook分段运行,查看结果)

import numpy as np
import matplotlib.pyplot as plt

#x轴
x = np.arange(-2*(np.pi),2*(np.pi),0.001)

#y轴 
y = np.cos(2*np.pi*50*x)+2*np.cos(2*np.pi*100*x)
           
           
plt.grid(linestyle=':')
           
plt.plot(x,y,label="cos(x)+cos(3x)")

plt.xlabel("x")
plt.ylabel("y")
plt.title("cos(x)+cos(3x)")
plt.legend()
plt.show()

4 对 cos(x)+cos(3x)做傅里叶变换,并转换,绘制其频谱图

import numpy.fft as fft
#经过傅里叶变换,找他的频谱图
complex_array = fft.fft(y)
print(complex_array.shape)
print(complex_array.dtype)  # complex128 
print(complex_array[1])

y_ifft = fft.ifft(complex_array)
plt.plot(x, y_ifft, label='y_ifft', color='orangered')
plt.xlabel("t(毫秒)")
plt.ylabel("y_ifft(t)幅值")
plt.title("ifft变换图")
plt.grid(linestyle=':')
plt.legend()
plt.show()
#fft频谱图
# 得到分解波的频率序列
#freqs = np.fft.fftfreq(采样数量, 采样周期)
freqs = fft.fftfreq(x.size,0.001)
#当采样周期=0.001时,采样频率为1000,正负对称,取正的一边,最大为500Hz
#当采样周期=0.0002时,采样频率为5000,正负对称,取正的一边,最大为2500Hz,这个最后提取的两个频率不是50和100,有影响,还不知道真正含义。
#freqs = fft.fftfreq(x.size, 0.0002)
# 复数的模为信号的振幅(能量大小)
pows = np.abs(complex_array)
plt.title('FFT变换,频谱图')
plt.xlabel('Frequency 频率')
plt.ylabel('Power 功率')
plt.tick_params(labelsize=10)
plt.grid(linestyle=':')
plt.plot(freqs[freqs > 0], pows[freqs > 0], c='orangered', label='Frequency')
plt.legend()
plt.tight_layout()
plt.show()

频谱图

请添加图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值