python画图1:matplotlib绘制两个变量相关性图详解
import numpy as np
import matplotlib.pyplot as plt
# 让每次⽣成的随机数⼀样,seed括号⾥的数⽤做标记没有实际含义
np.random.seed(19680801)
dt = 0.01
# np.arange()⽤法,函数返回⼀个有终点和起点的固定步长的排列,
# 第⼀个参数为起点,第⼆个参数为终点,第三个参数为步长
t = np.arange(0, 30, dt)matplotlib中subplot
# print(t)
# randn函数返回⼀个或⼀组样本,具有标准正态分布,
# 函数括号⾥(5)表⽰1*5,(2,3)表⽰⼀个2*3的数组,(2,2,3)表⽰两个2*3的数组
nse1 = np.random.randn(len(t)) # white noise 1
nse2 = np.random.randn(len(t)) # white noise 2
# print(nse1)
# 两组数据,数据构成由arange排列的sin和⼀个随机数构成
s1 = np.sin(2 * np.pi * 10 * t) + nse1
s2 = np.sin(2 * np.pi * 10 * t) + nse2
# 将返回既是fig图形对象⼜axes是2x1的轴对象数组,也就是两⾏⼀列的两个⼦图
fig, axs = plt.subplots(2, 1) # 和以下三句等同
# fig=plt.figure()
# ax=fig.add_subplot(2,1,1)
# ax=fig.add_subplot(2,1,2)
# 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(True)
# 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('d:/Users/zxshining/Pictures/python/.png', transparent=True, dpi=300, pad_inches = 0) plt.show( )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论