contour level appointing problem
2 views (last 30 days)
Show older comments
Asliddin Komilov
on 6 May 2022
Commented: Asliddin Komilov
on 8 May 2022
Hello everyone!
I appointed the contour level to the minimum value and 0.1 (code below) but in some I get only 0.1 without the minum value. I checked the code, the minimum value is generated everytime bu clabel is not taking it.
(nevermind the dataname, I have delited some parts to keep the privicy)
Please help. Thanks
dataname={'m' 'p' 't' 's' 'C' 'e' 'a' 'D' 'O' };
paramX=coefA;
paramY=coefB;
paramZ=deviNnorm;
paramZ(paramZ==0)=nan;
rowNum=3;
colmNum=3;
fig=figure('color','w');
for pp=1:rowNum*colmNum
subplot (rowNum,colmNum,pp)
[C,h] =contour(paramX,paramY,squeeze(paramZ(pp,:,:)),[0.01:0.01:0.1,0.2:0.4:1],'ShowText','on');hold on; plot(paramX,flip(paramY),'--','color','r');hold off
shows=[round(min(min(squeeze(paramZ(pp,:,:)))),2) 0.1];
clabel(C,h,shows,'FontWeight','bold')
axis([0 1 0 1])
title(dataname(pp))
view (0,90);
end
Accepted Answer
More Answers (1)
Riccardo Scorretti
on 7 May 2022
Edited: Riccardo Scorretti
on 7 May 2022
Hi Asliddin,
the problem is that in your own data sometimes the value for which you wish to plot the isovalue does not exist. See this modified version of your program:
load counttest.mat
dataname={'m' 'p' 't' 's' 'C' 'e' 'a' 'D' 'O' };
paramX = coefA;
paramY = coefB;
paramZ = deviNnorm;
paramZ(paramZ==0) = nan;
rowNum = 3;
colmNum = 3;
fig = figure('color','w');
iso = [0.01:0.01:0.10 , 0.2:0.4:1.0];
for pp = 1 : rowNum*colmNum
tmp_ = squeeze(paramZ(pp,:,:));
subplot (rowNum, colmNum, pp)
[C,h] = contour(paramX, paramY, tmp_, iso, 'ShowText', 'on');
hold on; plot(paramX, flip(paramY), 'r--'); % hold off
minval = round(min(tmp_(:)), 2);
shows = [minval 0.1];
if min(tmp_(:)) > shows(1)
fprintf('*** pp = %i : The required value %f doesn''t exist (min = %f) ***\n', ...
pp, shows(1), min(tmp_(:)));
end
clabel(C, h, shows, 'FontWeight', 'bold');
axis([0 1 0 1]);
% title(dataname(pp));
title(num2str(pp));
view (0,90);
end
The program displays only the isoline corresponding to the value 0.1 in all graphics from 3 to 9. You cannot plot an isovalue corresponding to a value which is less than the minimum (or higher than the maximum) of your data.
See Also
Categories
Find more on Contour Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!