2011-11-22 8 views
5

Tôi đã googling một lúc nhưng không thể tìm thấy một giải pháp cho vấn đề của tôi. Tôi là một người dùng nghiệp dư matlab và tôi muốn tạo ra một phân tán 3D, cho điều này tôi có một ma trận có chứa một số điểm trong không gian 3D:3D scatterplot màu bởi Z-Value

>> size(A) 

    ans = 

     2511   3 

tôi đã có thể tạo ra một phân tán 3D sử dụng "scatter3" chức năng, nhưng bây giờ tôi đang mắc kẹt một chút tại mã hóa màu sắc các điểm 3D.

scatter3 (A (:, 1), A (:, 2), A (:, 3));

này sẽ vẽ đồ thị dữ liệu, nhưng bây giờ tôi muốn thêm một mã hóa màu sắc dựa trên z-Value ... Những màu sắc themself không quan trọng quá nhiều. Nó có thể là phổ cầu vồng hay quang phổ nhiệt độ hay bất cứ thứ gì. Tôi chỉ muốn mã hóa chúng để phân biệt z-giá trị của các điểm.

Ai có thể giúp tôi với điều này? Cảm ơn bạn!

+0

Câu trả lời của tôi là trực tiếp từ tài liệu, bằng cách: http://www.mathworks.com/help/techdoc/ref/scatter3.html –

Trả lời

7

Bạn phải cung cấp thêm một số đối số cho scatter3.

scatter3(X,Y,Z,S,C); 

S phép bạn chỉ định khu vực cho mỗi dấu (với một vector) hoặc một khu vực duy nhất cho tất cả các cột mốc, trong khi C phép bạn chỉ định màu. Nếu C là một vectơ, các giá trị của nó sẽ được ánh xạ tuyến tính tới bản đồ màu hiện tại. Để thay đổi bản đồ màu, hãy gọi colormap(jet) chẳng hạn. Xem tài liệu trên colormap.

Xin lỗi nếu điều đó gây nhầm lẫn. Phiên bản ngắn:

scatter3(A(:,1),A(:,2),A(:,3),9,A(:,3)); 
colormap(jet); %# or other colormap 
+0

cảm ơn bạn hoạt động tốt ... Tôi bằng cách nào đó chỉ cố gắng thay đổi kích thước, nhưng không vượt qua đối số màu ... ngu ngốc tôi ... cảm ơn bạn! – evident