python 数据可视化 -- 真实数据的噪声平滑处理
平滑数据噪声的一个简单朴素的做法是,对窗口(样本)求平均,然后仅仅绘制出给定窗口的平均值,而不是所有的数据点。
import matplotlib.pyplot as plt
import numpy as np def moving_average(interval, window_size):
window = np.ones(int(window_size)) / float(window_size)
return np.convolve(interval, window, 'same') # numpy的卷积函数 t = np.linspace(start = -4, stop = 4, num = 100)
y = np.sin(t) + np.random.randn(len(t)) * 0.1
y_av = moving_average(interval = y, window_size = 10)
plt.plot(t, y, "b.-", t, y_av, "r.-") plt.xlabel('Time')
plt.ylabel('Value')
plt.legend(['original data', 'smooth data'])
plt.grid(True)
plt.show()

以下方法是基于信号(数据点)窗口的卷积(函数的总和)
import matplotlib.pyplot as plt
import numpy as np WINDOWS = ['flat', 'hanning', 'hamming', 'bartlett', 'blackman'] def smooth(x, window_len = 11, window = 'hanning'):
if x.ndim != 1:
raise ValueError('smooth only accepts 1 dimension arrays.')
if x.size < window_len:
raise ValueError('Input vector needs to be bigger than window size.')
if window_len < 3:
return x
if not window in WINDOWS:
raise ValueError('Window is one of "flat", "hanning", "hamming", "bartlett", "blackman"')
s = np.r_[x[window_len-1:0:-1], x, x[-1:-window_len:-1]]
if window == 'flat':
w = np.ones(window_len, 'd')
else:
w = eval('np.' + window + '(window_len)')
y = np.convolve(w/w.sum(), s, mode='valid')
return y t = np.linspace(-4, 4, 100)
x = np.sin(t)
xn = x + np.random.randn(len(t))*0.1 y = smooth(x)
ws = 31 plt.figure() plt.subplot(211)
plt.plot(np.ones(ws))
for w in WINDOWS[1:]:
eval('plt.plot(np.' + w + '(ws))')
plt.axis([0, 30, 0, 1.1])
plt.legend(WINDOWS)
plt.title('Smoothing windows') plt.subplot(212)
plt.plot(x)
plt.plot(xn)
for w in WINDOWS:
plt.plot(smooth(xn, 10, w))
l = ['original signal', 'signal with noise']
l.extend(WINDOWS)
plt.legend(l)
plt.title('Smoothed signal') plt.show()

中值过滤,即逐项的遍历信号,并用相邻信号项中的中值替代当前项
import matplotlib.pyplot as plt
import numpy as np
import scipy.signal as signal x = np.linspace(start=0, stop=1, num=51) x[3::5] = 1.5 # 从第4个 数开始,每个5个数,将其值改为 1.5 plt.plot(x, 'k.')
plt.plot(signal.medfilt(volume=x, kernel_size=3), 'b.-') # 在给定大小的邻域内取中值替代数据值,在邻域中没有元素的位置补0
plt.plot(signal.medfilt(volume=x, kernel_size=15), 'r.-')
plt.legend(['original signal', 'length 3', 'length 15'])
plt.show()

python 数据可视化 -- 真实数据的噪声平滑处理的更多相关文章
- python 数据可视化 -- 读取数据
从 CSV 文件中读取数据(CSV) import sys import csv # python 内置该模块 支持各种CSV文件 file_name = r"..\ch02_data\ch ...
- Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor
Webservice WCF WebApi 注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- 第二篇:R语言数据可视化之数据塑形技术
前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...
- 【visio】数据可视化 - 形状数据
visio在对数据处理方面也是有一整套的设施,用户可以用visio存储.管理对象数据,利用数据驱动图形设计,让数据形象化,并在团队沟通的时候清晰地展示数据,沟通数据. 1.属性 每个图形都可以设置多个 ...
- 5 种使用 Python 代码轻松实现数据可视化的方法
数据可视化是数据科学家工作中的重要组成部分.在项目的早期阶段,你通常会进行探索性数据分析(Exploratory Data Analysis,EDA)以获取对数据的一些理解.创建可视化方法确实有助于使 ...
- [转]5 种使用 Python 代码轻松实现数据可视化的方法
数据可视化是数据科学家工作中的重要组成部分.在项目的早期阶段,你通常会进行探索性数据分析(Exploratory Data Analysis,EDA)以获取对数据的一些理解.创建可视化方法确实有助于使 ...
- 数据可视化:使用python代码实现可视数据随机漫步图
#2020/4/5 ,是开博的第一天,希望和大家相互交流学习,很开森,哈哈~ #像个傻子哟~ #好,我们进入正题, #实现功能:利用python实现数据随机漫步,漫步点数据可视化 #什么是 ...
- 超级干货 :一文读懂数据可视化 ZT
前言 数据可视化,是指将相对晦涩的的数据通过可视的.交互的方式进行展示,从而形象.直观地表达数据蕴含的信息和规律. 早期的数据可视化作为咨询机构.金融企业的专业工具,其应用领域较为单一,应用形态较为保 ...
随机推荐
- 文件系统扫描工具-fsck
文件系统扫描工具-fsck 注意的是fsck扫描文件系统时一定要在单用户模式.修复模式或把设备umount后进行.建议在单用户模式下运行.如果扫描正常运行中的系统,会造成系统文件损坏. fsck不仅可 ...
- 【Java基础】While循环详解
循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语 ...
- 注意source folder与folder是不同的,避免404错误
在整合ssm框架的时候,程序和配置文件都没写错,tomcat也部署成功了,但在访问的时候一直404,web项目自带的index.jap却能正常访问,一直找不到原因,后来发现建立放配置文件的文件夹con ...
- fdisk 分区及 swap
使用虚拟机创建挂载点 一,创建 windows 硬盘 创建
- docx httpheader头设置
设置contentType内容类型如下: Extension MIME Type .doc application/msword .dot application/msword .docx appli ...
- 1024程序员节宅男节日快乐 -- JAVA快速开发平台,JEECG 3.8宅男优化版本发布
JEECG 3.8 版本发布,系统全面升级,重构上传组件.优化代码生成器机制! 导读 ⊙平台性能优化,系统更稳定,速度闪电般提升 ⊙系统上传组件全面重构,使用plupload组件,解决flash的 ...
- web跨域问题(No 'Access-Control-Allow-Origin'..)
1. 问题 angular开发中连接java服务时出现跨域问题(No 'Access-Control-Allow-Origin'..). 如下图 解决方法 2,原因分析 这个与安全机制有关,默认情况下 ...
- Json、JavaBean、Map、XML之间的互转
思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...
- RabbitMQ安装及使用
下载 由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang.好在RabbitMQ官网已经为我们提供了Erlang的安装包 Erlang下载地址:htt ...
- jQuery之位置坐标图形相关方法
jQuery实例方法-位置图形 位置坐标图形大小相关方法: .offset() .position() .scrollTop() ..scrollLeft() .width()..height() . ...