matplotlib绘制两个变量相关性图详解

 图示如下:

 

下面是代码解释,不懂得可以看注解每行都有解释

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
# 确定再现性的随机状态
# numpy.random.seed(0) ; numpy.random.rand(4)
# numpy.random.seed(0)是的确定随机数的开始值相同
# numpy.random.rand(4)随机生成四个数
#设计一个随机数种子
np.random.seed(19680801)

#步长为0.1
dt = 0.01

'''
np.arange()函数分为一个参数,两个参数,三个参数三种情况
1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数
'''
t = np.arange(0, 30, dt)

'''
numpy.random.rand()产生从[0,1) [0,1)[0,1)之间的随机数,没有负值
numpy.random.randn()产生服从正态分布的随机数,会出现负值
深度学习中的parameters是可能会有负值的,所以我们不使用numpy.random.rand()
'''
nse1 = np.random.randn(len(t))                 # white noise 1 白噪一
nse2 = np.random.randn(len(t))                 # white noise 2


# Two signals with a coherent part at 10Hz and a random part
# 2 * np.pi==2*pi
# np.sin(a)  对矩阵a中每一个元素取正弦
s1 = np.sin(2 * np.pi * 1 * t) + nse1
s2 = np.sin(2 * np.pi * 1 * t) + nse2

'''
fig,ax = plt.subplots()等价于:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
fig, ax = plt.subplots(1,3),其中参数1和3分别代表子图的行数和列数,
一共有 1x3 个子图像。函数返回一个figure图像和子图ax的array列表。
fig, ax = plt.subplots(1,3,1),最后一个参数1代表第一个子图。
如果想要设置子图的宽度和高度可以在函数内加入figsize值
fig, ax = plt.subplots(1,3,figsize=(15,7)),这样就会有1行3个15x7大小的子图。
'''
fig, axs = plt.subplots(2, 1)

'''
#单条线:
plot([x], y, [fmt], data=None, **kwargs)
#多条线一起画
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
'''
# 两条曲线
# axs[0]表示第一个图
axs[0].plot(t, s1, t, s2)
# 设置x轴起始和结束坐标
axs[0].set_xlim(0, 2)
# x和y标签
axs[0].set_xlabel('time')
axs[0].set_ylabel('s1 and s2')
# grid(true)绘制刻度线的网格 False不绘制
axs[0].grid()

# axs[1]表示第二个图 dt为步长
# 绘制s1和s2相关性函数 ,NNFT=256应该是默认参数
cxy, f = axs[1].cohere(s1, s2, 256, 1. / dt)
# 设置y坐标为相关性
axs[1].set_ylabel('coherence')

#tight_layout会自动调整子图参数,使之填充适应整个图像区域
fig.tight_layout()
# savefig()保存图片,如果有更新则重写图片
plt.savefig(r'C:\Users\Administrator\Desktop\资料\A_edit\machine_learning\picture\1.png')
plt.show()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值