0

是否可以绘制多个 ListPolarPlots 以在 Mathematica 中提供 3D 效果?

我可以使用 ListPolarPlot[{data1, data2, data3}] 绘制多个极坐标图,没有任何问题;但是有很多数据集,一个 3D 图表会更好地显示我的数据,每个极坐标图都沿着第三个轴。我使用过 ListPLot3D 效果很好,但我很想知道我是否可以对极坐标图做同样的事情......

提前致谢!

4

1 回答 1

0

当您想要制作 3D 绘图时,您首先需要拥有 3D 数据。因此,我假设您的意思是 ListSphericalPlot3D。如果您已经有了球坐标中的点列表,那么绘制它们并不难。

我们所做的是,基本上首先将坐标更改为“笛卡尔”,然后绘制它:

ListSphericalPlotPoints3D[list_List] := ListPointPlot3D[Map[CoordinateTransformData["Spherical" -> "Cartesian","Mapping", #] &,Map[{#[[1]], Mod[#[[2]], \[Pi]], Mod[#[[3]], 2 \[Pi]]} &, list]]];
ListSphericalPlot3D[list_List] := ListPlot3D[Map[CoordinateTransformData["Spherical" -> "Cartesian", "Mapping", #] &, Map[{#[[1]], Mod[#[[2]], \[Pi]], Mod[#[[3]], 2 \[Pi]]} &,list]]];

这两个功能有望满足您的要求。

更新:

由于这种转换相当简单,因此可以直接手动编写整个转换:

ListSphericalPlotPoints3D[list_List] := ListPointPlot3D[Map[{#[[1]] Sin[#[[2]]] Cos[#[[3]]], #[[1]] Sin[#[[2]]] Sin[#[[3]]], #[[1]] Cos[#[[2]]]} &,Map[{#[[1]], Mod[#[[2]], \[Pi]], Mod[#[[3]], 2 \[Pi]]} &, list]]];
ListSphericalPlot3D[list_List] := ListPlot3D[Map[{#[[1]] Sin[#[[2]]] Cos[#[[3]]], #[[1]] Sin[#[[2]]] Sin[#[[3]]], #[[1]] Cos[#[[2]]]} &, Map[{#[[1]], Mod[#[[2]], \[Pi]], Mod[#[[3]], 2 \[Pi]]} &,list]]];
于 2013-05-26T13:32:49.540 回答