2014-10-15 23 views
15

Tôi có một âm mưu với hai biểu đồ. Tuy nhiên, rất khó để cho biết biểu đồ nào trên cốt truyện đến từ tập dữ liệu đầu tiên và biểu đồ nào là tập hợp dữ liệu thứ hai. Có một đường màu khác nhau cho mỗi biểu đồ: một là màu xanh, và màu kia là màu xanh lục. MATLAB 'ColorOrder' mặc định có khác nhau giữa các thiết bị không? Nếu không - lệnh là gì?Thứ tự màu MATLAB mặc định là gì?

Trả lời

22

Câu hỏi hay! Có một thứ tự màu mặc định cho MATLAB. Hãy lưu ý rằng các phiên bản trước R2014b, thứ tự màu mặc định cho MATLAB sử dụng bản đồ màu phản lực. Trong bản đồ màu phản lực, âm mưu đầu tiên có màu xanh dương, tiếp theo là ô thứ hai có màu xanh lục. Đối với các phiên bản sau R2014b, điều này tuân theo bản đồ màu parula, trong đó lô đầu tiên sẽ là màu xanh nhạt hơn theo sau là ô thứ hai là một màu cam đồng. Nếu bạn thực sự muốn biết những gì trình tự màu sắc là cho âm mưu của bạn, hãy chắc chắn cốt truyện được mở trong MATLAB, sau đó làm như sau:

get(gca,'colororder') 

này sẽ trả về một ma trận 2D nơi mỗi hàng cung cấp cho bạn tỷ lệ đỏ, xanh lá cây và xanh dương cho mỗi ô mà bạn sản xuất. Trên máy tính của tôi tại thời điểm bài viết này khi tôi đang chạy MATLAB R2013a và với Mac OSX 10.9.5, đây là những gì tôi nhận:

>> get(gca,'colororder') 

ans = 

     0   0 1.0000 
     0 0.5000   0 
    1.0000   0   0 
     0 0.7500 0.7500 
    0.7500   0 0.7500 
    0.7500 0.7500   0 
    0.2500 0.2500 0.2500 

Mỗi hàng cung cấp cho bạn các giá trị màu đỏ, xanh lá cây và xanh dương cho một cụ thể màu. Hàng đầu tiên biểu thị màu đầu tiên đi vào ô, tiếp theo là hàng thứ hai biểu thị màu thứ hai và cứ như vậy.

Như vậy, thứ tự màu trên là:

  1. tinh khiết màu xanh
  2. Một bóng râm nhẹ của màu xanh lá cây
  3. tinh khiết đỏ
  4. Một hỗn hợp của màu xanh lá cây và màu xanh, đó là màu lục lam
  5. Hỗn hợp màu đỏ và màu xanh, màu đỏ tươi
  6. Hỗn hợp màu đỏ và màu xanh lá cây có màu vàng
  7. Một hỗn hợp màu đỏ, xanh lá cây và xanh dương, trông giống như một màu xám đen.

Hiện nay (10 tháng ba năm 2016), tôi đang sử dụng MATLAB R2015a và đây là bản đồ màu tôi nhận được:

>> get(gca,'colororder') 

ans = 

     0 0.4470 0.7410 
    0.8500 0.3250 0.0980 
    0.9290 0.6940 0.1250 
    0.4940 0.1840 0.5560 
    0.4660 0.6740 0.1880 
    0.3010 0.7450 0.9330 
    0.6350 0.0780 0.1840 

Các tuples RGB trong trường hợp này là một chút phức tạp hơn và vì vậy thật khó để suy ra họ là gì bằng cách chỉ nhìn vào màu sắc.


Là phần thưởng bổ sung, chúng tôi có thể tạo hình ảnh trực quan hóa các màu này cho bạn. Giả sử bạn có hộp công cụ xử lý hình ảnh, đây là mã tôi đã viết để hình dung những màu đó cho mỗi ô bạn đặt trong hình của bạn.

colours = permute(get(gca, 'colororder'), [1 3 2]); 
colours_resize = imresize(colours, 50.0, 'nearest'); 
imshow(colours_resize); 

Đây là những gì tôi đã cho MATLAB R2013a:

enter image description here

Chạy mã này một lần nữa trong MATLAB R2015a, đây là những gì tôi nhận được:

enter image description here


Ngoài ra, bạn luôn có thể sử dụng legend mô tả biểu đồ đến từ dữ liệu nào.

+0

Từ điều tra thêm của tôi, tôi đã thấy rằng màu xanh thực sự là màu đầu tiên. Tôi đoán đó là cùng một thứ tự cho tất cả các thiết bị. Mỏ là một PC. – Toad22222

14

Có bản đồ màu cho mục đích cụ thể này - lines (Được giới thiệu trước R2006a). Đây là những gì lines.m nói:

%LINES Color map with the line colors. 
% LINES(M) returns an M-by-3 matrix containing a "ColorOrder" 
% colormap. LINES, by itself, is the same length as the current 
% colormap. If no figure exists, MATLAB uses the length of the 
% default colormap. 

Nếu bạn mở tài liệu của lines, bạn có thể nhìn thấy một hình ảnh xem trước trông rất giống với những gì xuất hiện trong rayryeng's answer:

enter image description here

Vì vậy, chừng nào vì bạn đang sử dụng mặc định colormap, để biết màu của các dòng n đầu tiên, tất cả những gì bạn cần làm là gọi lines(n).

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