How to label each line in the plot
12 次查看(过去 30 天)
显示 更早的评论
Hello everyone i hope you are doing well. I want to label y axis with the value i get from
Value= unique(whiteLineRows1);
but when i plot it gives the Value= as in the image attached
How can i plot the value on each line
path = 'C:\Users\DELL\Documents\MATLAB\Examples\R2021b\phased\ModClassificationOfRadarAndCommSignalsExample\NewDataset\DatasetGeneration\Detection\ImageDetection\imageclass_001001.png';
rgbImage = imread(path);
[rows, columns, numberOfColorChannels] = size(rgbImage);
if numberOfColorChannels > 1
grayImage = rgbImage(:, :, 3);
else
grayImage = rgbImage;
end
[rows, columns, numberOfColorChannels] = size(rgbImage);
mask = grayImage >= 128;
[labeledImage, numRegions] = bwlabel(mask);
props = regionprops(labeledImage, 'Area', 'Centroid');
allLengths = [props.Area];
centroids = vertcat(props.Centroid);
whiteLineRows1 = centroids(:, 2);
Value= unique(whiteLineRows1);
hold on
Levels=length(Value);
for k = 1 : Levels
str = sprintf('Value %d', Value(k))
yline(Value, 'LineWidth', 2, 'Color', 'r','Label',str);
hold off
end
0 个评论
采纳的回答
Scott MacKenzie
2022-3-28
The main problem in the image is that the values are superimposed. This can be fixed by using an index into the Values array for each line:
for k = 1 : Levels
str = sprintf('Value %d', Value(k))
yline(Value(k), 'LineWidth', 2, 'Color', 'r','Label',str); % add index into Value
hold off
end
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!