首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中,如何在绘图时用流畅的线条连接点?

在python中,如何在绘图时用流畅的线条连接点?
EN

Stack Overflow用户
提问于 2017-11-18 09:35:06
回答 2查看 16.3K关注 0票数 6

我试着用样条线绘制点+平滑线。但是这条线“过冲”了一些点,例如在下面的代码中,超过了点0.85。

代码语言:javascript
运行
复制
import numpy as np 
import matplotlib.pyplot as plt
from scipy.interpolate import spline

x=np.array([0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2])
y=np.array([0.57,0.85,0.66,0.84,0.59,0.55,0.61,0.76,0.54,0.55,0.48])

x_new = np.linspace(x.min(), x.max(),500)
y_smooth = spline(x, y, x_new)

plt.plot (x_new,y_smooth)
plt.scatter (x, y)

我该如何修复它?

EN

Stack Overflow用户

发布于 2021-07-05 16:57:40

您也可以尝试使用来自scipy的径向基函数插值的thin plate spline

代码语言:javascript
运行
复制
import numpy as np 
import matplotlib.pyplot as plt
from scipy.interpolate import Rbf

x = np.array([0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2])
y = np.array([0.57,0.85,0.66,0.84,0.59,0.55,0.61,0.76,0.54,0.55,0.48])

x_new = np.linspace(x.min(), x.max(), 500)

rbf = Rbf(x, y, function = 'thin_plate', smooth = 0.001)
y_smooth = rbf(x_new)

plt.plot(x_new, y_smooth)
plt.scatter (x, y);

通过改变smooth参数可以获得更好的数据近似值。

要考虑的替代function参数值包括“多二次”、“逆”、“高斯”、“线性”、“立方”和“五次”。在考虑立方体的值时,我通常会先尝试'thin_plate‘,然后再尝试’function‘。

检查scipy.interpolate.Rbf docs中的其他径向基函数选项。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47361589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档