늦은 답변이지만 추가해야 할 두 가지 사항 :
'ColorOrder'
속성 을 변경하는 방법과로 전역 기본값을 설정하는 방법 에 대한 자세한 내용 'DefaultAxesColorOrder'
은이 게시물 하단의 "부록"을 참조하십시오.
- MATLAB Central File Exchange에는 Image Processing Toolbox가있는 경우 시각적으로 구별되는 여러 색상을 생성 할 수있는 훌륭한 도구가 있습니다. 자세한 내용은 계속 읽으십시오.
ColorOrder
axes
재산권 사용할 경우 색의리스트를 자동으로 순환 MATLAB 수 있도록 hold on/all
(다시, 방법은 아래의 부록 참조 set
/ 특정 축 또는 전체적으로 통해 ). 그러나 기본적으로 MATLAB 은 순환 할 짧은 색상 목록 ( R2013b 기준 7 개만) 만 지정하며 , 반면에 더 많은 데이터 계열에 적합한 색상 세트를 찾는 것은 문제가 될 수 있습니다. 10 개의 플롯의 경우 기본값에 의존 할 수 없습니다 .get
ColorOrder
DefaultAxesColorOrder
ColorOrder
수있는 좋은 방법 N 시각적으로 구분 색상을 정의는 함께 다양한 MATLAB 중앙 파일 파일 교환의 "극대 지각 - 고유 색상을 생성"(GMPDC) 제출 . 저자 자신의 말로 가장 잘 설명됩니다.
이 기능 은 RGB보다 인간의 색상 인식에 더 가깝게 일치 하는 "Lab"색상 공간 을 참조하여 구별 할 수있는 색상 세트를 생성합니다 . 가능한 색상의 초기 큰 목록이 주어지면 이전에 선택한 모든 항목에서 가장 먼 목록의 항목 (실험실 공간에서)을 반복적으로 선택합니다.
예를 들어 25 가지 색상이 요청되는 경우 :
GMPDC 제출은 MathWorks의 공식 블로그 에서 2010 년 Pick of the Week로 선정 되었습니다. 부분적으로는 임의의 수의 색상을 요청할 수있는 기능 때문입니다 (MATLAB의 기본 색상 7 개와 달리). 그들은 ColorOrder
시작시 MATLAB을 다음과 같이 설정하라는 훌륭한 제안을 했습니다.
distinguishable_colors(20)
물론 ColorOrder
단일 축에 대해을 설정하거나 원하는 방식으로 사용할 색상 목록을 생성 할 수 있습니다. 예를 들어 "최대 지각 적으로 구별되는 색상"10 개를 생성하고 동일한 축에서 10 개의 플롯에 사용하려면 (을 사용하지 않으므로 ColorOrder
루프가 필요함 ) :
% Starting with X of size N-by-P-by-2, where P is number of plots
mpdc10 = distinguishable_colors(10) % 10x3 color list
hold on
for ii=1:size(X,2),
plot(X(:,ii,1),X(:,ii,2),'.','Color',mpdc10(ii,:));
end
이 프로세스는 축 속성을 사용하여 루프가 필요하지 않고for
ColorOrder
단순화 됩니다 .
크기 NxPx2의 % X
mpdc10 = 구분 가능한 _ 색상 (10)
ha = 축; 홀드 (ha, 'on')
set (ha, 'ColorOrder', mpdc10) % --- 여기에 ColorOrder 설정 ---
plot (X (:, :, 1), X (:, :, 2), '-.') % 루프가 필요하지 않음, '색상'이 필요하지 않습니다. 예이!
부록
ColorOrder
현재 축에 사용되는 RGB 배열 을 얻으려면
get(gca,'ColorOrder')
ColorOrder
새 축의 기본값을 얻으려면
get(0,'DefaultAxesColorOrder')
다음 ColorOrder
에서 MATLAB 시작시 10 색으로 새 전역을 설정하는 예 startup.m
:
set(0,'DefaultAxesColorOrder',distinguishable_colors(10))