matplotlab的简单使用+引力波绘制

news/2024/7/21 6:08:07 标签: 图像处理, python

绘制能量衰减图

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

a = np.arange(0.0, 5.0, 0.02)

plt.subplot(211)
plt.plot(a, f(a))

plt.subplot(212)
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()

在这里插入图片描述

使用中文标签

python">import matplotlib.pyplot as plt
import numpy as np
import matplotlib

# 第一种方法:全局改变
matplotlib.rcParams['font.family'] = 'SimHei'
plt.plot([3,1,3,2,6])
plt.ylabel("测试哈哈哈")
plt.show()

# 第二种方法:属性设置
plt.ylabel("测试哈哈哈",fontproperties = 'SimHei',fontsize = 20)
plt.show()

在这里插入图片描述

文本显示

python">import matplotlib.pyplot as plt
import numpy as np

a = np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2 * np.pi * a), 'r--')

plt.xlabel("横轴:时间", fontproperties = 'SimHei',fontsize=15,color = 'green')
plt.ylabel("纵轴:振幅",fontproperties = 'SimHei',fontsize=15)
plt.title(r'正弦波实例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
plt.text(2,1.5, r'$\mu=100$',fontsize=15)

# 使用箭头
# plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))

plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()

在这里插入图片描述

饼图绘制

python">import matplotlib.pyplot as plt
import numpy as np

labels = 'Frogs','Hogs','Dogs','Logs'
sizes = [15,30,45,10]
explode = [0,0.1,0,0]

plt.pie(sizes,explode = explode,labels = labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.axis('equal')
plt.show()

在这里插入图片描述

直方图绘制

报错:AttributeError: 'Polygon' object has no property 'normed'
原因:库更新后不支持normed了,改为density=True

python">import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)

mu, sigma = 100,20
a = np.random.normal(mu,sigma,size = 100)

plt.hist(a,30,density=True,histtype='stepfilled', facecolor='b',alpha = 0.75,stacked=True)
plt.title('Histogram')

plt.show()

在这里插入图片描述

极坐标图

python">
import matplotlib.pyplot as plt
import numpy as np

N = 10
theta = np.linspace(0.0, 2 * np.pi,N,endpoint=False)
radii = 10* np.random.rand(N)
width = np.pi / 2 * np.random.rand(N)

ax = plt.subplot(111,projection = 'polar')
bars = ax.bar(theta, radii, width = width, bottom =0.0)

for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r / 10))
    bar.set_alpha(0.5)

plt.show()

在这里插入图片描述

散点图

python">import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
ax.plot(10*np.random.randn(100), 10*np.random.randn(100), 'o')
ax.set_title('simple Scatter')

plt.show()

在这里插入图片描述

引力波绘制

数据在这个网站获取https://python123.io/dv/grawave.html

python">import matplotlib.pyplot as plt
import numpy as np
from scipy.io import wavfile

# 使用wavfile来读取音频文件.wav
rate_h, hstrain = wavfile.read(r"H1_Strain.wav","rb")
rate_l, lstrain = wavfile.read(r"L1_Strain.wav","rb")

# 读取引力波模型
# 其中reftime是时间序列,ref_H1是信号数据
reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose()


# 对波形求倒数,得到时间间隔
htime_interval = 1/rate_h
ltime_interval = 1/rate_l

# 求坐标轴的长度以及每个坐标
htime_len = hstrain.shape[0]/rate_h
htime = np.arange(-htime_len/2, htime_len/2, htime_interval)

ltime_len = lstrain.shape[0]/rate_h
ltime = np.arange(-ltime_len/2, ltime_len/2, ltime_interval)

# 创造绘图空间
fig = plt.figure(figsize = (12,6))

plth = fig.add_subplot(221)
plth.plot(htime,hstrain,'y')
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('H1 Strain')
plth.set_title('H1 Strain')

# 以完全相同的方式绘制另外两幅图像
plth = fig.add_subplot(222)
plth.plot(ltime,lstrain,'g')
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('L1 Strain')
plth.set_title('L1 Strain')


# 以完全相同的方式绘制另外两幅图像
plth = fig.add_subplot(212)
plth.plot(reftime,ref_H1)
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('Template Strain')
plth.set_title('Template')
fig.tight_layout()


plt.savefig("xxx.png")
plt.show()
plt.close(fig)

效果:
请添加图片描述


http://www.niftyadmin.cn/n/1444520.html

相关文章

Django REST框架-请求与响应

用前面的那个文件,继续填写 教程2:请求和响应 从这一点开始,我们将真正开始覆盖REST框架的核心。我们来介绍几个基本的构建块。 请求对象 REST框架引入了Request扩展常规的对象HttpRequest,并提供了更灵活的请求解析。Request对象…

PALM开发教程-第十四章 程序的可移植性(转)

在这一章中,我们将编写计算器程序运运算的核心部分。我先为核心编制一个ANSI C版本,然后将详细探讨如何使这些代码在Palm OS中运行。 设计计算器核心 在开始写代码之前,我们必须知道到底该做些什么。一个解决这类问题的好方法是建立一个包括程…

spring 传播属性

1 required:业务方法需要在一个事务中运行,如果方法运行时,已经处在一个事务中,那么就加入到该事物中,要么就创建一个新的事务。 2 not_supported:声明方法不需要事务,如果方法没有关联到一个事…

python的 __init__ 理解

文章参考:http://www.cnblogs.com/zyxstar2003/archive/2011/03/21/1989954.html 注意1、__init__并不相当于C#中的构造函数,执行它的时候,实例已构造出来了。 class A(object):def __init__(self,name):self.namenamedef getName(self):re…

各种编程文档中可选参数[, key]的意思

一直发现python文档中有类似这样的定义 max(arg1, arg2, *args[, key]) 但是一直没有搞懂参数值*args[, key]这种语法规则,通过搜索我终于了解了,这并不是python中的语法,而是很多编程语言usage中的一种惯例写法 文档中的方括号代表可选参数 …

python基本进程调用

python基本进程调用 from multiprocessing import Process import os import time def info(name):print("name:",name)print(parent process:, os.getppid())print(process id:, os.getpid())print("------------------")time.sleep(1)def foo(name):info…

DOM事件第一弹

近期温习了部分w3c上关于DOM事件的规范,发现以前有些模糊的概念更加清晰,以及受到罗胖(罗辑思维)的影响,很是想分享自己的了解的东西,希望大家给予指正或补充。 一、事件类型 参数事件接口初始化方法HTMLEv…

黑客学堂:不输密码照样登陆操作系统(转)

Q:请问能不能不输密码,直接来登录Windows 2003系统呢?  A:很简单,通过移花接木就可以做到。先到Windows XP系统下,通过文件查找的方式,找到nusrmgr.cpl文件,在默认状态下&#xff…