python 三维散点图拟合曲面_利用python进行曲面拟合并进行3D显示

利用python进行曲面拟合并进行3D显示

2019-10-15

0.jpeg

之前通常都是用matlab高效处理3d数据的插值和显示,切换到python后,利用scipy的curve_fit和pyecharts的3D显示,可以替代原来的matlab解决方案。曲面插值

数据构造和拟合函数调用方式如下:from scipy import optimizex = np.random.rand(200, )y = np.random.rand(200, )z = x**2 + y**2 + x*y + x + y + np.random.rand(*x.shape)*1.1def fun(x, p0, p1, p2, p3, p4, p5):x0 = x["a"]x1 = x["b"]return p0 + p1 * x0 + p2 * x1 + p3 * x0 * x1 + p4 * x0 * x0 + p5 * x1 * x1df = pd.DataFrame(columns=["a", "b"], index=range(len(x)))df["a"] = xdf["b"] = ypopt, pcov = optimize.curve_fit(fun, df, z)

pyecharts画图

利用pyecharts构造一个3D散点图和一个3D的曲面图。对于图例对齐,pyecharts对于2D图例提供了line.overlap(scatter)这种调用形式,但是对于3D图例,并没有提供类似的方法。

经过一些试验,发现可以用这种方式把2个3D图叠加在一起进行显示:def grid_horizontal() -> Grid:grid = (Grid().add(scatter3D, grid_opts=opts.GridOpts()).add(surface3D, grid_opts=opts.GridOpts()))return grid最终的效果如下,可以在网页里自由拖动旋转三维图形:

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

https://i-blog.csdnimg.cn/blog_migrate/8400eaafc88b47f2ca5854877f446d8c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值