Colors 在Mathematica中用不同的颜色给特定点着色

Colors 在Mathematica中用不同的颜色给特定点着色,colors,wolfram-mathematica,Colors,Wolfram Mathematica,Mathematica命令的输出 ListPointPlot3D[ Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], PlotStyle -> PointSize[0.02]] 下面是一幅图 我想用红色给点(0,0)和(1,2)上色。如何为此修改上述命令 一个非常简单直接的方法是: list = Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}]; pts

Mathematica命令的输出

ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02]]
下面是一幅图


我想用红色给点(0,0)和(1,2)上色。如何为此修改上述命令

一个非常简单直接的方法是:

list = Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}];
pts = {{0, 0, 0}, {1, 2, 0}};

ListPointPlot3D[{Complement[list, pts], pts}, 
 PlotStyle -> PointSize[0.02]]

当然,我没有明确指定颜色,因为下一个默认颜色是红色。但是,如果您想指定自己的,可以对其进行更多修改,如下所示:

ListPointPlot3D[{Complement[list, pts], pts}, 
 PlotStyle -> {{Green, #}, {Blue, #}} &@PointSize[0.02]]

尤达展示了一种很好的方法。但是,有时直接使用图形原语更容易。这里有一个例子,不过在这个例子中,我会选择尤达的方法

Graphics3D[{
  PointSize[0.02],
  Point /@ Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}] /. 
    x : _@{1, 2, 0} | _@{0, 0, 0} :> Style[x, Red]
}]

可以使用
ColorFunction
选项来
ListPointPlot3D

color[0, 0, _] = Red;
color[1, 2, _] = Red;
color[_, _, _] = Blue;

ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02],
  ColorFunction -> color, ColorFunctionScaling -> False]

包含
ColorFunctionScaling->False
选项非常重要,因为否则传递给颜色函数的x、y和z坐标将标准化为0到1的范围

ColorFunction
还允许我们使用任意计算定义点着色,例如:

color2[x_, y_, _] /; x^2 + y^2 <= 9 = Red;
color2[x_, y_, _] /; Abs[x] == Abs[y] = Green;
color2[_, _, _] = Blue;

ListPointPlot3D[
  Join @@ Table[{x, y, 0}, {x, -6, 6, 1}, {y, -6, 6, 1}], 
  PlotStyle -> PointSize[0.02],
  ColorFunction -> color2, ColorFunctionScaling -> False]
color2[x_u,y_u,u]/;x^2+y^2点大小[0.02],
ColorFunction->color2,ColorFunctionScaling->False]

有趣的方法。我喜欢+1.