【发布时间】:2019-08-31 10:35:27
【问题描述】:
我正在使用 Python 和 matplotlib。 我有很多点,用数组生成。
fig, ax = plt.subplots(ncols=1, nrows=1, figsize=Groesse_cm/2.54)
ax.set_title(title)
ax.set_xlabel(xlabel) # Beschriftung X-Achse
ax.set_ylabel(ylabel) # Beschriftung Y-Achse
ax.plot(xWerte, yWerte, 'ro', label=kurveName)
ax.plot(xWerte, y2Werte, 'bo', label=kurveName2)
plt.show()
所以我有用于 x 值的 arrayX 和用于 Y 值(红色)的 arrayYmax 和用于 Y 值(蓝色)的 arrayYmin。我不能给你我的数组,因为那太复杂了。
我的问题是: 如何获得如上图所示的样条曲线/拟合?我不知道拟合点的功能,所以我只有 [x / y] 值的点。所以我不想连接我想要适合的点。所以是的,我说适合这个:D
这是一个我不想有的例子: 代码如下:
fig, ax = plt.subplots(ncols=1, nrows=1, figsize=Groesse_cm/2.54)
degree = 7
np.poly1d(np.polyfit(arrayX,arrayYmax,degree))
ax.plot(arrayX, arrayYmax, 'r')
np.poly1d(np.polyfit(arrayX,arrayYmin,degree))
ax.plot(arrayX, arrayYmin, 'b')
#Punkte
ax.plot(arrayX, arrayYmin, 'bo')
ax.plot(arrayX, arrayYmax, 'ro')
plt.show()
【问题讨论】:
-
“我不能给你我的数组,因为这太复杂了。”。您不必这样做,您可以提供一个代表样本作为minimal reproducible example的一部分
-
也许您可以使用移动平均线之类的东西?有足够的数据点,它应该靠近你的红色曲线。您有时可以在统计图中看到这一点。或者你可以创建另一个函数,它总是取两个连续点的中间 Y 值。
标签: python image matplotlib points