2011-10-29 24 views

Trả lời

9

Một cách rất đơn giản và dễ hiểu sẽ là:

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

Tất nhiên, tôi rời nó mà không chỉ định rõ màu sắc vì màu mặc định bên cạnh là màu đỏ. Tuy nhiên, nếu bạn muốn chỉ định của riêng bạn, bạn có thể sửa đổi nó một chút nữa là:

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

yoda hiển thị phương pháp tốt. Tuy nhiên, đôi khi, nó dễ dàng hơn để làm việc trực tiếp với đồ họa nguyên thủy. Đây là một ví dụ về điều đó, mặc dù trong trường hợp này tôi sẽ chọn phương pháp của 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

Người ta có thể sử dụng ColorFunction tùy chọn để 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

Điều quan trọng là để bao gồm các tùy chọn ColorFunctionScaling -> False vì nếu không x, yz các tọa độ được chuyển đến chức năng màu sẽ được chuẩn hóa vào phạm vi đến .

ColorFunction cũng cho phép chúng ta xác định màu điểm sử dụng tính tùy ý, ví dụ:

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

Thú vị phương pháp. Tôi thích nó. +1 –

+0

+1 từ tôi cho kỹ thuật tuyệt vời này! – smilingbuddha

Các vấn đề liên quan