Elevate a single isoline in a contour (2D) plot

조회 수: 33 (최근 30일)
Marc Jakobi
Marc Jakobi 2013년 8월 31일
Hi.
I have a 2D contour plot in the form of
contour(x,y,z,'LevelStep',2,'Fill','on')
which gives me isolines varying between the values 22 and 48 (13 fill colours in between), with z depending on various input parameters.
What I am trying to do is colour ONE isoline of the value 34 black, while leaving all other lines uncoloured, recognizable only through the fill of the in between values. The contour is supposed to display cost ranges in dependence of two factors. The isoline with the value x represents the profitability limit (all lines with a higher value are not profitable.
Any help would be much appreciated!

채택된 답변

Sven
Sven 2013년 8월 31일
편집: Sven 2013년 8월 31일
Hi Marc,
Is this what you're trying to do?
[x,y,z] = peaks;
z = z*10
figure
[c,h] = contour(x,y,z,'LevelStep',2,'Fill','on')
hold on
[c2,h2] = contour(x,y,z, [34 34], 'Color','k')
I think that since your first call to contour cannot guarantee that there will be a contour exactly at your chosen level of 34, it's probably a good idea to just superimpose another contour at that specific level.
You can adjust colours of your contour(s) via the handles returned in h and h2.
If instead you really want to adjust the colour of the original contours, then you can hack things a little as follows:
[x,y,z] = peaks;
z = z*10;
yourValue = 34;
clf
[c,h] = contour(x,y,z,'LevelStep',2,'Fill','on');
children = get(h,'Children');
for i=1:length(children)
if any(get(children(i),'FaceVertexCData')==yourValue)
set(children(i),'EdgeColor','k')
end
end
Did that help you out?
  댓글 수: 3
Marc Jakobi
Marc Jakobi 2013년 9월 5일
Hi Sven.
Do you know if it is possible to make the line dotted?
Marc
Sven
Sven 2013년 9월 5일
Sure, there's a property of the resulting handle called 'LineStyle' that can be set to various styles (see the plot command for a list of styles):
[x,y,z] = peaks;
z = z*10;
figure
[c,h] = contour(x,y,z,'LevelStep',2,'Fill','on')
hold on
[c2,h2] = contour(x,y,z, [34 34], 'Color','k')
set(h2,'LineStyle',':')

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Contour Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by