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‘)

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=101)
x[3::10] = 1.5
print(x)
plt.plot(x, ‘k.‘)
plt.plot(signal.medfilt(x,3))
plt.plot(signal.medfilt(x,15))
plt.legend([‘original signal‘, ‘length 3‘, ‘length 15‘])
plt.show()

原文地址:https://www.cnblogs.com/0820LL/p/10363635.html

时间: 2024-10-11 12:00:03

python 数据可视化 -- 真实数据的噪声平滑处理的相关文章

数据可视化(9)--数据可视化6步法

在当前互联网,各种数据可视化图表层出不穷,本文尝试对数据可视化的方法进行归纳,整理成6步法.一般的数据图表都可以拆分成最基本的两类元素: 所描述的事物及这个事物的数值,我们暂且将其分别定义为指标和指标值.比如一个性别分布中,男性占比30%,女性占比70%,那么指标就是男性.女性,指标值对应为30%.70%. 1. 将指标值图形化 一个指标值就是一个数据,将数据的大小以图形的方式表现.比如用柱形图的长度或高度表现数据大小,这也是最常用的可视化形式.传统的柱形图.饼图有可能会带来审美疲劳,可尝试从图

python 数据可视化 -- 读取数据

从 CSV 文件中读取数据 import sys import csv # python 内置该模块 支持各种CSV文件 file_name = r"..\ch02_data\ch02-data.csv" # r 指明字符串不用转义 data = [] try: with open(file_name) as f: # 打开文件 reader = csv.reader(f) # 获取 reader 对象,通过对该对象的遍历获取文件的所有内容 header = next(reader)

【数据可视化】数据可视化分类

数据可视化分为:科学可视化.信息可视化,可视化分析学这三个主要分支. 科学可视化,处理科学数据,面向科学和工程领域的科学可视化,研究带有空间坐标和几何信息的三维空间测量数据.计算模拟数据和医疗影像数据等,重点探索如何有效地呈现数据中几何.拓扑和形状特征.信息可视化,处理对象是非结构化.非几何的抽象数据,如金融交易.社交网络和文本数据,其核心挑战是如何针对大尺度高维数据减少视觉混淆对有用信息的干扰.可视分析学,由于数据分析的重要性,将可视化与分析结合,形成的新的学科. 科学可视化(Science

第二篇:R语言数据可视化之数据塑形技术

前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节推荐参考<R语言核心手册>. 数据框塑型 1. 创建数据框 - data.frame() # 创建向量p p = c("A", "B", "C") # 创建向量q q = 1:3 # 创建数据框:含p/q两列 dat = data.fra

最简洁的Python时间序列可视化:数据科学分析价格趋势,预测价格,探索价格

时间序列数据在数据科学领域无处不在,在量化金融领域也十分常见,可以用于分析价格趋势,预测价格,探索价格行为等. 学会对时间序列数据进行可视化,能够帮助我们更加直观地探索时间序列数据,寻找其潜在的规律. 本文会利用Python中的matplotlib[1]库,并配合实例进行讲解.matplotlib库是?个?于创建出版质量图表的桌?绘图包(2D绘图库),是Python中最基本的可视化工具. [工具]Python 3 [数据]Tushare [注]示例注重的是方法的讲解,请大家灵活掌握. 01 单个

数据可视化中数据展示效果,基于highcharts的图表数据展示

最近在公司里搞对外的大屏展示,效果需要比较酷炫. 因为只是单纯的数据展示+效果,而且时间比较紧(2天时间基于一个原先的3D地球模型,制作配套十来个页面),采用jquery+highcharts (效果1) (效果2) 上面就是效果图,直接上代码,文件引入这样的问题就不说了 1 render_chart: function (chartid, type) { 2 let chartOption = {}; 3 switch (type) { 4 case "areaspline" : 5

数据可视化分析除了需要编码的Python,还有更简单的方式吗?

大数据.数据分析的兴起和火爆,也带动了数据可视化的广泛应用.说起数据分析和可视化的关系,就好比你为一堆散乱的拼图写了一份说明,告诉他这个数据是什么样子,代表什么.可以说,数据可视化虽然不是必不可少的,但却是可以加快效率,为报告锦上添花的.今天,说起数据可视化,我们就不得不谈一下数据可视化工具了.主要说到的这个工具也是最近在数据分析圈比较受追捧的一个软件--Python. 数据可视化分析除了需要编码的Python,还有更简单的方式吗?Python虽好,但是需要编程才能实现数据的可视化,编程对于用户

数据可视化背后的秘密

数据可视化,特别是基于Web的数据可视化的时代已经到来了. 类似JavaScript的可视化库如D3.js, Rapha?l, 以及Paper.js, 以及最新浏览器所支持的如Canvas和SVG,以及使得那些过去只能由计算机专家和专业设计人员开发的复杂的可视化变得越来越简单了. 数据可视化如今成为了很多网站项目的必备功能. 而类似于Platfora, DatameerClearStory Data以及Chartio等初创公司则可以利用基于浏览器的分析平台融到数百万美元的投资. 数据可视化是数据

数据可视化之总结

之前三周分别针对Berkeley Earth,AQICN和Earth Nullschool三个网站的前端技术做了总结,分别简称为BAE,今天我们抛开技术,和大家聊两点: 三个网站的对比 数据可视化的认识 三个网站的对比 如果做一个比喻,我的感觉是B像一个事业有成的中年,A像一个充满活力的青年,而E则是一位不拘一格的艺术家.如下是三个网站在中国区域的AQI可视化效果,看到这个对比图后,你的第一印象是什么?中间京东618广告?听的我一口血吐到屏幕上. 首先,Berkeley有大量的原始数据,对数据管