在 Mathematica 中按索引为 ListPointPlot3D 点着色
Colour ListPointPlot3D points by index in Mathematica
是否可以根据列表索引值对点进行着色?例如。假设我有一组坐标
l1 := {{20.729858261394142, -11.014787072072988, 20.910738872021085}, {26.754953134772755, 12.795549555413617, 12.35084230079088}, {-26.240583655553486, 14.046344120397391, 4.267648394595125}, {-28.350142916856896, -15.381100510373342, 2.203525286738756}}
然后我使用这个 Mathematica 命令
ListPointPlot3D[l1, PlotStyle -> {Blue, PointSize[0.025]}]
我希望能够将第一个点指定为红色,第二个点为绿色,第三个点为蓝色,等等
我不想将 Show[...]
与多个 ListPointPlot3D
命令一起使用...
我找到了 this related question,但是这个颜色基于 (x, y, z) 坐标值。
我解决了。我们可以使用,例如,
Graphics3D[{PointSize[0.05], Point[l1,
VertexColors -> (Blend[{Red, Green, Blue, Yellow}, #] & /@ Rescale@Range@Length[l1])]},
BoxRatios -> {1, 1, 1}, Axes -> False]
另一种方式:
Graphics3D[{PointSize[0.05],
MapIndexed[ { Blend[{Red, Green, Blue, Yellow},
(1/Length@l1) First@#2], Point[#]} &, l1]}]
在这种形式下,您可以轻松地将 Point
切换为 Sphere
,后者看起来更好一些。
另一种方法,使用 ListPointPlot3D,只是为每个点加上额外的大括号,
ListPointPlot3D[{{{1, 0.5, 1}}, {{1, 1, 1}}, {{1, 1.5, 1}}},
PlotStyle -> {
Directive[{Red, PointSize[0.03]}],
Directive[{Blue, PointSize[0.04]}],
Directive[{Black, PointSize[0.03]}]
}
]
是否可以根据列表索引值对点进行着色?例如。假设我有一组坐标
l1 := {{20.729858261394142, -11.014787072072988, 20.910738872021085}, {26.754953134772755, 12.795549555413617, 12.35084230079088}, {-26.240583655553486, 14.046344120397391, 4.267648394595125}, {-28.350142916856896, -15.381100510373342, 2.203525286738756}}
然后我使用这个 Mathematica 命令
ListPointPlot3D[l1, PlotStyle -> {Blue, PointSize[0.025]}]
我希望能够将第一个点指定为红色,第二个点为绿色,第三个点为蓝色,等等
我不想将 Show[...]
与多个 ListPointPlot3D
命令一起使用...
我找到了 this related question,但是这个颜色基于 (x, y, z) 坐标值。
我解决了。我们可以使用,例如,
Graphics3D[{PointSize[0.05], Point[l1,
VertexColors -> (Blend[{Red, Green, Blue, Yellow}, #] & /@ Rescale@Range@Length[l1])]},
BoxRatios -> {1, 1, 1}, Axes -> False]
另一种方式:
Graphics3D[{PointSize[0.05],
MapIndexed[ { Blend[{Red, Green, Blue, Yellow},
(1/Length@l1) First@#2], Point[#]} &, l1]}]
在这种形式下,您可以轻松地将 Point
切换为 Sphere
,后者看起来更好一些。
另一种方法,使用 ListPointPlot3D,只是为每个点加上额外的大括号,
ListPointPlot3D[{{{1, 0.5, 1}}, {{1, 1, 1}}, {{1, 1.5, 1}}},
PlotStyle -> {
Directive[{Red, PointSize[0.03]}],
Directive[{Blue, PointSize[0.04]}],
Directive[{Black, PointSize[0.03]}]
}
]