선택한 색상을 MATLAB의 이미지에서 범례에 수동으로 추가하려면 어떻게해야합니까?

시밤 판데

이미지에서 해당 색상의 rgb 값에 따라 범례에 색상을 추가하고 싶습니다. 아래에 작성된 코드를 사용하여 이미지를 표시 할 수 있습니다.

x1=ones(30);  x2=2*ones(30); x3=3*ones(30);
x=[x1,x2,x3];
y1=zeros(30,90); y2=zeros(30,90); y3=zeros(30,90); y=zeros(30,90,3);
y1(x==1)=0; y2(x==1)=77; y3(x==1)=26;
y1(x==2)=102; y2(x==2)=255; y3(x==2)=102;
y1(x==3)=204; y2(x==3)=102; y3(x==3)=0;
y(:,:,1)=y1; y(:,:,2)=y2; y(:,:,3)=y3;
imshow(uint8(y))
밥 반 드 보 르트

두 가지 주요 방법이 있습니다. 첫 번째 방법과 가장 쉬운 방법은 컬러 바를 사용하는 것입니다.

%insert after you open the figure
myc=[0 77 6; 102 255 102;204 102 0]./255; %create your colormap, I just quickly copied the rgb values by hand but there are more elegant ways of cours
colormap(myc); %set the colormap
hcb=colorbar; %call a colorbar as legend
%%% if you want to turn off the ticks add the code below
hcb.Ticks=[];

각 색상에 특정 항목을 사용하려면 이것을 사용할 수 있습니다.

clear all; % just for ease of quickly plotting this
close all; %closing all figures
myc=[0 77 6; 102 255 102;204 102 0]./255; %this is can be used to draw the paralel lines, can be of any color, just replace the zeros, with the respective values of the colors you want, 0 0 0 is black
x = [0 0 0 0]; %making it have 0 area and thus invisible
y = [0 0 0 0];
figure
hold on
text=cell(1,length(myc)); %make an empty cell array for the strings of the legend
for i=1:length(myc) %run a for loop for each color in your color array
    h(i)=patch(x,y,myc(i,:),'EdgeColor','none'); %For a rectangular color entry in legend, set the color to the corresponding value of the array
    text{1,i}=['color ', num2str(i)]; %create a text to go with the color
end
[lgd,OBJH,OUTH,OUTM]=legend([h],text); %the lgd handle let's you later modify properties of the legend
xlim([0 1])
ylim([0 1])

다음은 좀 더 구체적인 내용을 원할 경우 일반적으로 범례를 사용자 지정하는 방법을 보여주는 또 다른 예제 코드입니다.

clear all; % just for ease of quickly plotting this
close all; %closing all figures
myc=[1 1 1; 0 0 0; 1 1 1; 0 0 0; 1 1 1]; %this is can be used to draw the paralel lines, can be of any color, just replace the zeros, with the respective values of the colors you want, 0 0 0 is black
x = [0 0 0 0]; %making it have 0 area and thus invisible
y = [0 0 0 0];
c = [0 0.33 0.66 1]; %lets you add a colorbar
figure
colormap(myc); %update the figure to use your colormap 
hold on
h1=patch(x,y,'Color','red','EdgeColor','none'); %For a rectangular color entry in legend, red can be replaced by an RGB value on a 0 to 1 interval
h3 = plot(NaN,NaN,'Color','none'); %blank entry
h2=patch(x,y,c,'EdgeColor','none');  %lets you add the colorbar, later use to place inside the legend as paralel lines
h4 = plot(NaN,NaN,':'); % entry with dotted line, color "pseudo random"
[lgd,OBJH,OUTH,OUTM]=legend([h1,h3,h2,h4],{'HI your text here','Nothing','paralel lines','line'}); %the lgd handle let's you later modify properties of the legend
hcb=colorbar; %the colorbar can still be modified, to have no number or a different scale, color, etc.
hcm=OBJH(5)
xlim([0 1])
ylim([0 1])
lpos=lgd.Position; % get position legend
lnr=numel(OUTH); %legend entries is useful
lhstp=lpos(4)/(lnr+1); %heigth step
hax=gca;
axpos=hax.Position; %to shift position because the colorbar is placed in the figure and not within the axes in comparison to the legend
% placing at by example 3rd entry
wdentry=0.04; %at the moment trial and error depends on width on legend box which is based on amount of characters and text size.
p1=axpos(1)+lpos(1)+0.01;
p2=lpos(2)+3/2*lhstp;
p3=wdentry;
p4=lhstp-0.01;
hcb.TickLabels=[]; %remove tick labels
hcb.Ticks=[]; %remove ticks
hcb.Color=[1 1 1]; %white border around it to make it "semi-invisible"
hcb.Position=[p1 p2 p3 p4];

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

선택한 색상을 색상 드롭 다운 상자에 추가하려면 어떻게해야합니까?

분류에서Dev

두 개의 목록 상자에서 색인이 동일한 항목을 선택하고 강조 표시하려면 어떻게해야합니까? VB.NET

분류에서Dev

DataGridView에서 마지막으로 추가 한 행을 선택하고 초점을 맞추려면 어떻게해야합니까?

분류에서Dev

ListView에서 선택한 항목을 자동으로 변경하려면 어떻게해야합니까?

분류에서Dev

업로드 한 이미지의 이름, 캡션 등을 Android 애플리케이션의 Facebook에 추가하려면 어떻게해야합니까?

분류에서Dev

루프 내에서 동일한 색상으로 플롯 할 두 개의 선을 얻으려면 어떻게해야합니까?

분류에서Dev

igraph ggplot rStudio 노드 사이의 선을 더 길게 만들고 화살표를 추가하려면 어떻게해야합니까? 또한 범례를 어떻게 작게 만들 수 있습니까?

분류에서Dev

다중 선택에 가로 스크롤을 추가하려면 어떻게해야합니까?

분류에서Dev

의사 클래스의 jquery 선택기에 변수를 추가하려면 어떻게해야합니까?

분류에서Dev

관계의 속성을 루트 개체에 자동으로 추가하려면 어떻게해야합니까?

분류에서Dev

TensorFlow에서 차별화 가능한 작업 선택을 수행하려면 어떻게해야합니까?

분류에서Dev

geom_line에 별도의 범례가있는 참 조선을 추가하려면 어떻게합니까?

분류에서Dev

특정 날짜 선택기에 수업을 추가하려면 어떻게해야합니까?

분류에서Dev

ggridges의 ridgeplot에 수직 색상 그라디언트를 추가하려면 어떻게해야합니까?

분류에서Dev

Gnuplot의 3 차원 플롯에서 2 차원 곡선에 지정된 색상을 추가하려면 어떻게해야합니까?

분류에서Dev

범례에서 색상 선 크기와 모양 크기를 개별적으로 변경하려면 어떻게해야합니까?

분류에서Dev

MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

분류에서Dev

MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

분류에서Dev

MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

분류에서Dev

선택한 목록에서 정의되지 않은 값을 제거하려면 어떻게해야합니까?

분류에서Dev

SVN 한 지점에서 다른 지점으로 2 개의 새 파일을 추가하려면 어떻게해야합니까?

분류에서Dev

수동으로 추가 한 범주 또는 해당 폴더에있는 폴더를 기반으로 임베드의 기존 봇 명령을 정렬하려면 어떻게해야합니까?

분류에서Dev

선택한 항목을 recycleview에서 texinput으로 표시하려면 어떻게해야합니까?

분류에서Dev

ggplot에서 범례의 기본 레이블을 수학적으로 변환하려면 어떻게해야합니까?

분류에서Dev

하나의 선택 옵션에서 두 개의 값을 얻으려면 어떻게해야합니까?

분류에서Dev

Linq-To-SQL 쿼리에서 탐색 가능한 개체에 대해 동적으로 생성 된 Where 식을 추가하려면 어떻게해야합니까?

분류에서Dev

행에서 가장 높은 숫자를 선택하고 동일한 열의 값과 자동으로 곱하려면 어떻게해야합니까?

분류에서Dev

Notepad ++에서 선택한 텍스트의 단어 수를 확인하려면 어떻게해야합니까?

분류에서Dev

MATLAB GUI 내에서 슬라이더로 축의 수직선을 이동하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    선택한 색상을 색상 드롭 다운 상자에 추가하려면 어떻게해야합니까?

  2. 2

    두 개의 목록 상자에서 색인이 동일한 항목을 선택하고 강조 표시하려면 어떻게해야합니까? VB.NET

  3. 3

    DataGridView에서 마지막으로 추가 한 행을 선택하고 초점을 맞추려면 어떻게해야합니까?

  4. 4

    ListView에서 선택한 항목을 자동으로 변경하려면 어떻게해야합니까?

  5. 5

    업로드 한 이미지의 이름, 캡션 등을 Android 애플리케이션의 Facebook에 추가하려면 어떻게해야합니까?

  6. 6

    루프 내에서 동일한 색상으로 플롯 할 두 개의 선을 얻으려면 어떻게해야합니까?

  7. 7

    igraph ggplot rStudio 노드 사이의 선을 더 길게 만들고 화살표를 추가하려면 어떻게해야합니까? 또한 범례를 어떻게 작게 만들 수 있습니까?

  8. 8

    다중 선택에 가로 스크롤을 추가하려면 어떻게해야합니까?

  9. 9

    의사 클래스의 jquery 선택기에 변수를 추가하려면 어떻게해야합니까?

  10. 10

    관계의 속성을 루트 개체에 자동으로 추가하려면 어떻게해야합니까?

  11. 11

    TensorFlow에서 차별화 가능한 작업 선택을 수행하려면 어떻게해야합니까?

  12. 12

    geom_line에 별도의 범례가있는 참 조선을 추가하려면 어떻게합니까?

  13. 13

    특정 날짜 선택기에 수업을 추가하려면 어떻게해야합니까?

  14. 14

    ggridges의 ridgeplot에 수직 색상 그라디언트를 추가하려면 어떻게해야합니까?

  15. 15

    Gnuplot의 3 차원 플롯에서 2 차원 곡선에 지정된 색상을 추가하려면 어떻게해야합니까?

  16. 16

    범례에서 색상 선 크기와 모양 크기를 개별적으로 변경하려면 어떻게해야합니까?

  17. 17

    MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

  18. 18

    MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

  19. 19

    MATLAB에서 2D 가우스 함수의 합을 보여주는 이미지를 플로팅하려면 어떻게해야합니까?

  20. 20

    선택한 목록에서 정의되지 않은 값을 제거하려면 어떻게해야합니까?

  21. 21

    SVN 한 지점에서 다른 지점으로 2 개의 새 파일을 추가하려면 어떻게해야합니까?

  22. 22

    수동으로 추가 한 범주 또는 해당 폴더에있는 폴더를 기반으로 임베드의 기존 봇 명령을 정렬하려면 어떻게해야합니까?

  23. 23

    선택한 항목을 recycleview에서 texinput으로 표시하려면 어떻게해야합니까?

  24. 24

    ggplot에서 범례의 기본 레이블을 수학적으로 변환하려면 어떻게해야합니까?

  25. 25

    하나의 선택 옵션에서 두 개의 값을 얻으려면 어떻게해야합니까?

  26. 26

    Linq-To-SQL 쿼리에서 탐색 가능한 개체에 대해 동적으로 생성 된 Where 식을 추가하려면 어떻게해야합니까?

  27. 27

    행에서 가장 높은 숫자를 선택하고 동일한 열의 값과 자동으로 곱하려면 어떻게해야합니까?

  28. 28

    Notepad ++에서 선택한 텍스트의 단어 수를 확인하려면 어떻게해야합니까?

  29. 29

    MATLAB GUI 내에서 슬라이더로 축의 수직선을 이동하려면 어떻게해야합니까?

뜨겁다태그

보관