matlab 更改等高线z坐标位置

Matlab——画指定Z轴高度的等高线_matlab绘制特定高度等高线_stzh_bk的博客-CSDN博客

以上为借鉴内容,可先阅读第一篇,本文针对第一篇中存在的等高线颜色问题进行了改进,已实现等高线的颜色与云图颜色一致。

此处与文章1几乎相同,仅将1中的方法进行了应用。

第二部分代码有两行改动,具体作用在注释中,****需要注意的是函数conpourh中的v值代表了每个等高线对应的Z值,基于此可以根据数值区间与RGB值的映射关系把每条等高线的颜色求出。我的代码是对应的 jet 风格。 

    figure(1)
   
    su=surfc(corx,cory,corz); 
    M=su(2).ContourMatrix;
    clf
    su=surf(corx,cory,corz);
    hold on;
    conpourh(M,0.9);

     shading interp; 
    colormap('jet');
     grid off;
function conpourh(M,h)%%%等高线移动位置
% M----等高线矩阵
% h----自定义的指定高度
 
    [~,c_list] = size(M);
    k=1;
    v(1)=M(1,1);   %z值
    n(1)=M(2,1);  %n为每条线点数
    s(1)=2;
    e(1)=s(1)+n(1)-1;
    pan=1;
    while pan==1
        cishu=k;k=k+1;
        v(k)=M(1,e(cishu)+1);
        n(k)=M(2,e(cishu)+1);
        s(k)=e(cishu)+2;
        e(k)=s(k)+n(k)-1;
        if e(k)==c_list
            pan=2;
        end
    end
    for i=1:cishu 
        XData=M(1,s(i):e(i));
        YData=M(2,s(i):e(i));
        ZData=h*ones(size(XData));
             rgb=bgrys(v(i));   %%%增加的代码,用于获取Z值下对应的RGB值
        plot3(XData,YData,ZData,'color',rgb);  %%% 增加的代码,赋予PLOT折线指定的颜色
   
        
        hold on;
    end
end
 

接下来,是自己写的函数,bgrys,这个函数参考了第二篇文章,目的是将数据与RGB值对应起来。

function color_jet=bgrys(zzz)
BGR =[ 
0,128,0,0
1,132,0,0
2,136,0,0
3,140,0,0
4,144,0,0
5,148,0,0
6,152,0,0
7,156,0,0
8,160,0,0
9,164,0,0
10,168,0,0
11,172,0,0
12,176,0,0
13,180,0,0
14,184,0,0
15,188,0,0
16,192,0,0
17,196,0,0
18,200,0,0
19,204,0,0
20,208,0,0
21,212,0,0
22,216,0,0
23,220,0,0
24,224,0,0
25,228,0,0
26,232,0,0
27,236,0,0
28,240,0,0
29,244,0,0
30,248,0,0
31,252,0,0
32,255,0,0
33,255,4,0
34,255,8,0
35,255,12,0
36,255,16,0
37,255,20,0
38,255,24,0
39,255,28,0
40,255,32,0
41,255,36,0
42,255,40,0
43,255,44,0
44,255,48,0
45,255,52,0
46,255,56,0
47,255,60,0
48,255,64,0
49,255,68,0
50,255,72,0
51,255,76,0
52,255,80,0
53,255,84,0
54,255,88,0
55,255,92,0
56,255,96,0
57,255,100,0
58,255,104,0
59,255,108,0
60,255,112,0
61,255,116,0
62,255,120,0
63,255,124,0
64,255,128,0
65,255,132,0
66,255,136,0
67,255,140,0
68,255,144,0
69,255,148,0
70,255,152,0
71,255,156,0
72,255,160,0
73,255,164,0
74,255,168,0
75,255,172,0
76,255,176,0
77,255,180,0
78,255,184,0
79,255,188,0
80,255,192,0
81,255,196,0
82,255,200,0
83,255,204,0
84,255,208,0
85,255,212,0
86,255,216,0
87,255,220,0
88,255,224,0
89,255,228,0
90,255,232,0
91,255,236,0
92,255,240,0
93,255,244,0
94,255,248,0
95,255,252,0
96,254,255,2
97,250,255,6
98,246,255,10
99,242,255,14
100,238,255,18
101,234,255,22
102,230,255,26
103,226,255,30
104,222,255,34
105,218,255,38
106,214,255,42
107,210,255,46
108,206,255,50
109,202,255,54
110,198,255,58
111,194,255,62
112,190,255,66
113,186,255,70
114,182,255,74
115,178,255,78
116,174,255,82
117,170,255,86
118,166,255,90
119,162,255,94
120,158,255,98
121,154,255,102
122,150,255,106
123,146,255,110
124,142,255,114
125,138,255,118
126,134,255,122
127,130,255,126
128,126,255,130
129,122,255,134
130,118,255,138
131,114,255,142
132,110,255,146
133,106,255,150
134,102,255,154
135,98,255,158
136,94,255,162
137,90,255,166
138,86,255,170
139,82,255,174
140,78,255,178
141,74,255,182
142,70,255,186
143,66,255,190
144,62,255,194
145,58,255,198
146,54,255,202
147,50,255,206
148,46,255,210
149,42,255,214
150,38,255,218
151,34,255,222
152,30,255,226
153,26,255,230
154,22,255,234
155,18,255,238
156,14,255,242
157,10,255,246
158,6,255,250
159,1,255,254
160,0,252,255
161,0,248,255
162,0,244,255
163,0,240,255
164,0,236,255
165,0,232,255
166,0,228,255
167,0,224,255
168,0,220,255
169,0,216,255
170,0,212,255
171,0,208,255
172,0,204,255
173,0,200,255
174,0,196,255
175,0,192,255
176,0,188,255
177,0,184,255
178,0,180,255
179,0,176,255
180,0,172,255
181,0,168,255
182,0,164,255
183,0,160,255
184,0,156,255
185,0,152,255
186,0,148,255
187,0,144,255
188,0,140,255
189,0,136,255
190,0,132,255
191,0,128,255
192,0,124,255
193,0,120,255
194,0,116,255
195,0,112,255
196,0,108,255
197,0,104,255
198,0,100,255
199,0,96,255
200,0,92,255
201,0,88,255
202,0,84,255
203,0,80,255
204,0,76,255
205,0,72,255
206,0,68,255
207,0,64,255
208,0,60,255
209,0,56,255
210,0,52,255
211,0,48,255
212,0,44,255
213,0,40,255
214,0,36,255
215,0,32,255
216,0,28,255
217,0,24,255
218,0,20,255
219,0,16,255
220,0,12,255
221,0,8,255
222,0,4,255
223,0,0,255
224,0,0,252
225,0,0,248
226,0,0,244
227,0,0,240
228,0,0,236
229,0,0,232
230,0,0,228
231,0,0,224
232,0,0,220
233,0,0,216
234,0,0,212
235,0,0,208
236,0,0,204
237,0,0,200
238,0,0,196
239,0,0,192
240,0,0,188
241,0,0,184
242,0,0,180
243,0,0,176
244,0,0,172
245,0,0,168
246,0,0,164
247,0,0,160
248,0,0,156
249,0,0,152
250,0,0,148
251,0,0,144
252,0,0,140
253,0,0,136
254,0,0,132
255,0,0,128];

% low=min(min(corz)); %0.9653  Z的最小值
% high=max(max(corz)); %1    Z的最大值
interval=(zzz-0.9653)/(1-0.9653)*255;   
interval=round(interval);
color_jet=flip(BGR(interval,2:4)/255);

end

效果图

原来

 更改后

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值