I want to obtain the following plot.
I have 4 matrices I would say one for each line. In the matrices there are zeros and ones. Each matrix define a subset of the plane. They hinted me to use contourf command in MATLAB but I cannot obtain the exact result. First of all I tried to sum the matrices but then I understand that with this tecnique there will be two areas with the same values and so the same color. Then I tried with the hold on but since contourf plot has only colors with alpha = 1, it shows me only the last contourf plot and not the previuos ones.
My target is to replicate as near as I can the above plot in MATLAB. Any hits? Thanks in advance.

댓글 수: 2

dpb
dpb 2020년 10월 25일
Attach the data...first guess w/o really seeing what is in each would be to scale the four regions and then sum...presuming the areas of each array cover the full space identically.
Giacomo Tabarelli
Giacomo Tabarelli 2020년 10월 25일
편집: Giacomo Tabarelli 2020년 10월 25일
The matrices cover all the space identically. I attach the data. Also attach my code. Another thing I cannot understand is why I have two white areas if they have different values?

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

 채택된 답변

dpb
dpb 2020년 10월 25일

0 개 추천

contourf(X,Y,rhosS+2*rhoEm+3*rhoImPl+4*rhoPl)
yields
You can set colors as wish...just need to scale the overlapping portions of the images to make them have different levels.
What is this a representation of, out of curiosity? Your data don't follow the pattern of the example exactly, but similar. This ends up with five unique areas by the automagic contour lines drawn...outside the upper right yellow region, that is.

댓글 수: 4

Giacomo Tabarelli
Giacomo Tabarelli 2020년 10월 25일
편집: Giacomo Tabarelli 2020년 10월 25일
I already tried to scale as you said and as you can see from my code. There is only one pb. Why I get two areas with the same color using a colormap with 6 custom colors? I want to have the white color as last color.
The regions represent stability regions for some Stochastic Lawson numerical methods. On the axis there are parameters used in the model. h is the step size.
Finally, is there a way to get some transparency? Or to get colored lines at each level as there is in the plot I attached in the original question?
dpb
dpb 2020년 10월 26일
Hmmm...I see I misread your code in the glance-over; yes, you did the same.
I played around a little more last night; the contour object is another one that is pretty-much opaque and not much useful doc for. In above answer I had presumed it was the combining by weighting that hadn't gotten and also that there would be a Color and/or CData property to set by the contour region to use to set colors.
As far as the colormap problem, there are seven unique levels in the overall Z array --
>> unique(Z(:))
ans =
0
1.00
3.00
4.00
7.00
8.00
10.00
>>
but
contourf(X,Y,rhosS)
shows that the level==1 value is occluded by the level==3 region so those two don't show separately.
I've got other demands right now, but I think perhaps the choice of weights is the problem, by using 1:4, 1+2 == 3 and 1+3 == 4 so those end up being the same.
Have to think about a way to generate weights so the levels are all still unique when combined...
dpb
dpb 2020년 10월 26일
편집: dpb 2020년 10월 26일
Z=rhosS+2*rhoEm+4*rhoImPl+8*rhoPl; % using pow2 weighting avoid overlapping
[M,hC]=contourf(X,Y,Z);
colormap(cmap)
caxis([min(Z(:)) max(Z(:))])
yields
I can't explain why caxis doesn't cover the range by default.
dpb
dpb 2020년 10월 26일
As for the lines, that can be done -- follow the link in the contourf doc to the "Contour Properties" page and it shows how there.
I gotta run now, can come check in later on...

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Contour Plots에 대해 자세히 알아보기

제품

질문:

2020년 10월 25일

편집:

dpb
2020년 10월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by