Legend for a image
古いコメントを表示
I'm a matlab newbie and plotting an image as shown below. I'm facing difficulties while adding a legend to image(); in my code. I could use legend when I use plot(); but could someone help me to use legend with image(); please.
% Display Data_1 and Data_2
DisplayData = zeros(100,100,length(Set));
DisplayData(Data_1_Index) = Data_1;
DisplayData(Data_2_Index) = Data_2;
DisplayData(Data_1_Index) = 20; % Use light blue for Data_1
DisplayData(Data_2_Index) = 50; % Use yellow for Data_2
figure;
image(DisplayData(:,:));
title('Data_1 and Data_2 elements');
Help command for legend was not that helpful.
採用された回答
その他の回答 (2 件)
Nathan Jessurun
2019 年 10 月 31 日
編集済み: Nathan Jessurun
2019 年 10 月 31 日
To me, this looks better. I store the colors in my image and make empty scatterplots on top of the image:
% Try it out
bwImg = imfill(imread('coins.png') > 100, 'holes');
% bwImg will have several binary circles
[eachCoin, numCoins] = bwlabel(bwImg);
% Get a different color for each coin. Add one for background and skip it
allColors = parula(numCoins + 1);
allColors = allColors(2:end,:);
labelsArr = cell(1, numCoins);
for ii = 1:length(labelsArr)
labelsArr{ii} = ['coin' num2str(ii)];
end
imagesc(eachCoin);
imlegend(allColors, labelsArr);
function imlegend(colorArr, labelsArr)
% For instance if two legend entries are needed:
% colorArr =
% Nx3 array of doubles. Each entry should be an RGB percentage value between 0 and 1
%
% labelsArr =
% 1×N cell array
% {'First name here'} {'Second name here'} {'etc'}
hold on;
for ii = 1:length(labelsArr)
% Make a new legend entry for each label. 'color' contains a 0->255 RGB triplet
scatter([],[],1, colorArr(ii,:), 'filled', 'DisplayName', labelsArr{ii});
end
hold off;
legend();
end

1 件のコメント
Ralph
2020 年 4 月 6 日
This is the best approach demonstrated. The task is not a legend for an 'image' per se, but rather for a 'map' with designated 2D regions.
カテゴリ
ヘルプ センター および File Exchange で Legend についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


