python - 如何让这个 matplotlib 情节不那么嘈杂?

标签 python matplotlib plot smoothing

如何在不考虑每个单独值的情况下用平滑、连续的线条绘制以下噪声数据?我只想以更好的方式展示行为,而不关心嘈杂和极端值。这是我正在使用的代码:

import numpy
import sys
import matplotlib.pyplot as plt
from scipy.interpolate import spline

dataset = numpy.genfromtxt(fname='data', delimiter=",") 

dic = {}

for d in dataset:
    dic[d[0]] = d[1] 

plt.plot(range(len(dic)), dic.values(),linestyle='-', linewidth=2)

plt.savefig('plot.png')
plt.show()

plot

最佳答案

previous answer 中,我被介绍给Savitzky Golay filter ,一种特殊类型的低通滤波器,非常适合数据平滑。您希望生成的曲线有多“平滑”是一个偏好问题,这可以通过窗口大小和插值多项式的阶数进行调整。使用 sg_filter 的食谱示例:

import numpy as np
import sg_filter
import matplotlib.pyplot as plt


# Generate some sample data similar to your post
X = np.arange(1,1000,1)
Y = np.log(X**3) + 10*np.random.random(X.shape)

Y2 = sg_filter.savitzky_golay(Y, 101, 3)

plt.plot(X,Y,linestyle='-', linewidth=2,alpha=.5)
plt.plot(X,Y2,color='r')

plt.show()

enter image description here

关于python - 如何让这个 matplotlib 情节不那么嘈杂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22913670/

相关文章:

r - 控制R绘图轴上的数字格式

r - 如何在 R 中生成我的 data.frame 的相关图?

python - 如何开始开发 python IDLE 扩展?

python - 为什么有分号;在 matplotlibs plot() 函数之后?

python - 将所有标签值移离轴

python - 如何转换 Pandas 中的纬度/经度点并查看它们是否落在某些边界多边形中?

r - 使用独特的 RMarkdown 标题创建多个图

javascript - 是否有基于 html/css/js 的富 Web 客户端框架?

python 日志记录如何将日志文件创建为 html

python - 如何使用 iterrows 或 itertuples 有效地迭代以从旧数据帧创建新数据帧