首页 > 解决方案 > 如何在 Pyplot 中获得平滑的平均曲线

问题描述

所以 Tensorboard 有这个很好的平滑功能,你可以用阴影颜色绘制原始曲线,并在顶部绘制纯色的平滑版本: 在此处输入图像描述

我怎样才能用 Pyplot 做到这一点?此功能是发现平滑曲线趋势和阴影原始曲线差异的关键。虽然 Tensorboard 非常有限,所以我想在 matplot lib 中重新创建外观。有任何想法吗?

注意我不想在数据点之间“插值”,差异太大。

标签: pythonmatplotlibtensorboard

解决方案


您可以使用rollingpandas 的 -object。有了这个,您可以定义一个特定大小的窗口来滚动您的数据,然后您可以使用它来计算平均值、总和或其他任何东西。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

t = np.linspace(0, 1.5*np.pi, 2500)
y = np.sin(t**2)+np.random.random(2500)*.6
df = pd.DataFrame(y)
plt.plot(df[0], 'lightblue', df[0].rolling(10).mean(), 'b')

在此处输入图像描述


推荐阅读