是否可以绘制多个 ListPolarPlots 以在 Mathematica 中提供 3D 效果?
我可以使用 ListPolarPlot[{data1, data2, data3}] 绘制多个极坐标图,没有任何问题;但是有很多数据集,一个 3D 图表会更好地显示我的数据,每个极坐标图都沿着第三个轴。我使用过 ListPLot3D 效果很好,但我很想知道我是否可以对极坐标图做同样的事情......
提前致谢!
是否可以绘制多个 ListPolarPlots 以在 Mathematica 中提供 3D 效果?
我可以使用 ListPolarPlot[{data1, data2, data3}] 绘制多个极坐标图,没有任何问题;但是有很多数据集,一个 3D 图表会更好地显示我的数据,每个极坐标图都沿着第三个轴。我使用过 ListPLot3D 效果很好,但我很想知道我是否可以对极坐标图做同样的事情......
提前致谢!
当您想要制作 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]]];