制作3D表面

3
我有关于当z=z1、z=z2和z=z3时x和y的数据。我想在一个三维图表上绘制这些数据,并用三维曲面逼近这些曲线,同时得出曲面的方程。在R或Mathematica中哪个更容易实现呢?例如,在R中如何实现呢?谢谢。
数据(示例):
For z=0
y   0.00    1.50    1.92    2.24
x   0.0000  0.0537  0.0979  0.2492

For z=2
y   0.00    2.21    2.83    3.07
x   0.0000  0.0173  0.0332  0.0655

For z=5
y   0.00    0.29    2.49    3.56
x   0.0000  0.0052  0.0188  0.0380

4
SO并不适合回答“哪个更好/更容易/更快/更酷/更大/更强”这种类型的问题,因为它们本质上充满了意见,并且可能随时间而变化。例如,我每天都使用R,因此对我来说,在R中完成这项任务几乎肯定会更容易。你能否改写你的问题,包含一些数据点,并询问如何在三维图中绘制它们的建议?然后你可以根据自己的目的决定使用R还是数学更容易一些。 - Chase
编辑了问题并添加了数据。 - jpcgandre
1
太好了,祝你好运!这个问题可能对你有帮助,因为它涉及到R。 - Chase
1个回答

5
在Mathematica中:
假设您有一个点集qt:
ListPointPlot3D[qt]

Mathematica graphics

您可以轻松地构建一个插值函数:

Plot3D[Interpolation[qt][x, y], {x, -2, 2}, {y, -2, 2}, Ealuated -> True]

Mathematica graphics

如果您需要一个明确的函数模型,可以提出一个并计算其参数:

model = a x^2 + b y^2;
fit = FindFit[qt, model, {a, b}, {x, y}];
Show[Plot3D[model /. fit, {x, -2, 2}, {y, -2, 2}, PlotRange -> All], 
     ListPointPlot3D[qt, PlotStyle -> Directive[PointSize[Medium], Red]]]

Mathematica图形

编辑

而且绘制漂亮的图表相当容易:

Mathematica图形


@AlexBrown 感谢 @Heike - Dr. belisarius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接