【问题标题】:Plot paraboloid surface fitting绘制抛物面拟合
【发布时间】:2018-03-16 17:18:58
【问题描述】:

如何在使用 Python 拟合抛物面后绘制它?为了得到那个plot

import numpy as np
import scipy.optimize as opt
import matplotlib.pyplot as plt

doex = [0.4,0.165,0.165,0.585,0.585]
doey = [.45, .22, .63, .22, .63]
doez = np.array([1, .99, .98,.97,.96])

def paraBolEqn(data,a,b,c,d):
    x,y = data
    return -(((x-b)/a)**2+((y-d)/c)**2)+1.0


popt,pcov=opt.curve_fit(paraBolEqn,np.vstack((doex,doey)),doez,p0=[1.5,0.4,1.5,0.4])
print(popt)

【问题讨论】:

标签: python matplotlib optimization curve-fitting


【解决方案1】:

mplot3d tutorial 记录了您需要了解的所有内容,其中介绍了在 matplotlib 中制作 3d 图的不同方法。

可以使用Axes3D.plot_wireframeAxes3D.scatter 方法复制您想要的情节:

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111, projection='3d')

x, y = np.meshgrid(np.linspace(np.min(doex), np.max(doex),10), np.linspace(np.min(doey),np.max(doey), 10))
ax.plot_wireframe(x, y, paraBolEqn((x,y), *popt))
ax.scatter(doex, doey, doez, color='b')

结果如下图:

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 2021-05-30
    • 2015-09-29
    • 1970-01-01
    • 2017-03-06
    • 2022-11-13
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多