2011-10-29 25 views

Respuesta

9

Una forma muy simple y sencillo sería:

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]] 

enter image description here

Por supuesto, lo dejé sin especificar explícitamente los colores debido a que el siguiente color por defecto es rojo. Sin embargo, si desea especificar el suyo, puede modificarlo un poco más como:

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

yoda muestra un método excelente. A veces, sin embargo, es más fácil trabajar directamente con primitivas gráficas. Aquí hay un ejemplo de eso, aunque en este caso elegiría el método de yoda.

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

Se podría utilizar la ColorFunction opción de 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] 

two points coloured

Es importante incluir la opción ColorFunctionScaling -> False porque de lo contrario la x, y y z las coordenadas pasadas a la función de color se normalizarán en el rango a .

ColorFunction permite también que definamos coloración punto el empleo de cálculos arbitrarios, por ejemplo:

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] 

many points coloured

+1

método interesante. Me gusta. +1 –

+0

+1 de mí por esta buena técnica! – smilingbuddha

Cuestiones relacionadas