如何在 Pyplot 中获得平滑的平均曲线
How to get smooth mean curves in Pyplot
所以 Tensorboard 有这个很好的平滑功能,你可以用阴影颜色绘制原始曲线,并在顶部绘制纯色的平滑版本:
如何使用 Pyplot 执行此操作?此功能是发现平滑曲线趋势和阴影原始曲线方差的关键。 Tensorboard 非常有限,所以我想在 matplot lib 中重新创建外观。有什么想法吗?
请注意,我不想在数据点之间 "interpolate",差异太大。
您可以使用 pandas 的 rolling
-对象。有了这个,您可以定义一个特定大小的 window 来滚动您的数据,然后您可以使用它来计算均值、总和或其他任何东西。
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')
所以 Tensorboard 有这个很好的平滑功能,你可以用阴影颜色绘制原始曲线,并在顶部绘制纯色的平滑版本:
如何使用 Pyplot 执行此操作?此功能是发现平滑曲线趋势和阴影原始曲线方差的关键。 Tensorboard 非常有限,所以我想在 matplot lib 中重新创建外观。有什么想法吗?
请注意,我不想在数据点之间 "interpolate",差异太大。
您可以使用 pandas 的 rolling
-对象。有了这个,您可以定义一个特定大小的 window 来滚动您的数据,然后您可以使用它来计算均值、总和或其他任何东西。
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')