我试图使用我的计算数据绘制轮廓,轮廓标签和颜色有限,如图片顶部面板所示:
但我最终得到了一个略有不同的情节(见上图中底部的情节)。 我想用以下三个规范修改我的情节
这是我的代码:
f=load('fort.15');
ngridx=180;
ngridy=180;
x=f(:,3);
y=f(:,4);
z=f(:,5);
xlin=linspace(min(x),max(x),ngridx);
ylin=linspace(min(y),max(y),ngridy);
[X,Y]=meshgrid(xlin,ylin);
Z=griddata(x,y,z,X,Y,'linear');
[c,h] = contour(X,Y,Z,20);
set(h,'LineWidth',2,'LineColor',rgb('SteelBlue'),'ShowText','on',...
'LabelSpacing',800 )
axis([0 6 -5 7])
我不是Matlab的专家。请帮助我找到正确的情节。 我附上了我的数据文件here。
答案 0 :(得分:0)
嗯,我只得到了3个。确定了颜色必须改变的等级(这里是scl
),你很高兴:
scl = 6.5; % switch color level;
[c1,h1] = contour(X,Y,Z,scl:max(Z(:)),'Color','r');
hold on
[c2,h2] = contour(X,Y,Z,min(Z(:)):scl,'Color','b');
clabel(c2,h2);
axis([0 6 -5 7])
这里的想法是使用hold on
命令从两个轮廓对象中提取你的情节。向量scl:max(Z(:))
定义要在第一个轮廓中显示的级别,并获得红色而没有标签。类似的逻辑适用于边缘轮廓。
如果您想要标记一些红色轮廓,或者从蓝色轮廓中删除标签,则需要将h2
函数中的clabel
替换为您想要标注的级别的向量。如果您在评论中具体说明,我会更新我的答案。
改变标签的格式可能不知怎的可能,但它真的不是微不足道的,所以我现在离开了。