sunhu2003 发表于 2011-7-14 12:50

MATLAB等高线图设置问题求助

最近我编写了一个绘制等高线图的小程序,源代码如下:
clc;clear
A=[...
       0.000113         0.000113      -951.390615
       0.000887         0.000113       532.482376
       0.000887         0.000887       422.830376
       0.000113         0.000887       176.413969
       0.000500         0.000113      -687.738275
       0.000887         0.000500       405.710453
       0.000500         0.000887       224.166964
       0.000113         0.000500      -500.895672
......   
];
=meshgrid(0:0.001:0.02,0:0.0005:0.01);
z=griddata(A(:,1),A(:,2),A(:,3),x,y,'v4');
colormap()
=contourf(x,y,z,20,'LineWidth',2);
set(gca,'linewidth',2,'fontsize',15,'fontweight','bold');
clabel(c,h,'fontsize',15,'fontweight','bold');
xlabel('x/m','fontweight','bold','fontsize',16);
ylabel('y/m','fontweight','bold','fontsize',16);
axis 'square';
box on;
maximum=A(1,3);
for i=2:1:1800;
   if A(i,3)>maximum;
      maximum=A(i,3);
   end;
end;
minimum=A(1,3);
for i=2:1:1800;   
   if A(i,3)<minimum;
      minimum=A(i,3);
   end;
end;
string=['The maximum/minimum normalized σ(eq) is ' num2str(maximum,3) '/' num2str(minimum,3)];
gtext(string,'fontsize',16,'fontweight','bold')
绘制的结果如附图所示。这里的问题是,在等高线上标注数值的时候,MATLAB默认到小数点后面4位左右,我只想显示小数点后面2位。另外,在标注数值的地方能不能把等高线擦除,这样线就不会和数值交叉了?请问,这些可以实现吗?希望各位大侠不吝赐教,小弟感激不尽!

sunhu2003 发表于 2011-7-14 21:46

怎么没有哪位哥会呀?

ChaChing 发表于 2011-7-15 00:29

本帖最后由 ChaChing 于 2011-7-15 00:31 编辑

下午有小试一下, 还没试成!
还有正事得忙的, 就先说说想法, LZ试先
1.LZ附图好像不同!?
2.好像直接使用contour即可有"等高线擦除"! 使用contourf再colormap()好像不必要
3.小数点位数问题, 试试LevelList/TextList两属性的更动(set/get)
希望方向是对的

sunhu2003 发表于 2011-7-15 10:29

回复 3 # ChaChing 的帖子

首先谢谢ChaChing的热心解答
1、源程序数据太多,我只给出了前面几行,所以出现了“附图”好像不同的问题哈
2、我用contour函数的时候,运行出错,显示Attempt to execute SCRIPT contour as a function. 是不是因为我的z不是x和y的规则函数?

sunhu2003 发表于 2011-7-15 12:00

附上我的源程序txt文件。
我通过使用LevelList命令,可以控制标注的数值范围和有效位数,但是还是没有解决如何在标注数值的地方擦除等值线。我尝试使用BackgroundColor命令讲标注背景置成白色,可以起到擦除等高线的作用,但是在标注多的地方互相重叠,效果不好。请问有没有更加好的解决方法呢?另外,为什么我的contour命令无法使用呢

ChaChing 发表于 2011-7-15 15:47

回复 4 # sunhu2003 的帖子

针对"Attempt to execute SCRIPT contour as a function",
建议使用which contour -all检查下是否有自订m file!?
页: [1]
查看完整版本: MATLAB等高线图设置问题求助