blck 发表于 2007-9-15 11:16:20

老问题新问:contour怎么控制里面的标识数字

我想画一个轮廓线,等高线,可是里面的标识每个圈大小的数字,不会控制显示,结果有数字就是黑乎乎的一片,可是不要数字表示不清楚啊,请高手帮忙,谢谢

bainhome 发表于 2007-9-15 23:11:09

去看看contour帮助中如下命令格式:
contour(...,LineSpec)
以及相对应example。

anhaiyang 发表于 2007-9-18 07:56:44

如果你要控制标识数字的大小有办法可以解决,
如果你想控制标识数字的位置好像只有一个参数是控制同一条线上标识数字相隔长度的(长度再标识线上计算)
前两都在contour参数里面。


如果你想在画完图示时在标注,可以看看Clabel参数,他可以在你绘制完成时,让你鼠标点击自己确定数字的位置

huxw 发表于 2010-11-2 14:35:14

谢谢,明白了一些。
但是怎样让标签都在 每条线的中间呢?通过间距控制的标签也是乱的,对不齐。

bainhome 发表于 2010-11-3 01:19:06

不妨给个对不齐的例子,对于图形的问题,文字描述有时是很不给力的。

huxw 发表于 2010-11-5 15:04:54

5# bainhome
谢谢,您说的是!
绘出的图像效果如下:

命令如下:
clear;clc;close all hidden;
z=load('a.txt');
x=0:100/12:100;
y=0:100/10:100;
v=;
=contour(x,y,z',v);
clabel(c,h,'LabelSpacing',600)
我调整LabelSpacing的值,很难达到居中的理想效果。并且每次运行,标签的位置都不一样。

huxw 发表于 2010-11-5 15:08:00

我把结果数值也贴上来吧:a.txt里的数据
谢谢。

bainhome 发表于 2010-11-6 01:19:03

本帖最后由 bainhome 于 2010-11-6 02:00 编辑

感觉位置还可以,没什么需要调整的。clear;clc;close all hidden;
z=load('a.txt');
x=0:100/12:100;
y=0:100/10:100;
v=;
=contour(x,y,z',v);
text_handle =clabel(c,h,'labelspacing',1500);
axis tight
set(text_handle,'BackgroundColor',,...
    'Edgecolor',[.7 .7 .7],...
    'HorizontalAlignment','center',...
    'VerticalAlignment','middle',...
    'fontsize',16);
同时控制等值线数值、等值线条数和其位置,好像不可以,但我觉得现在效果就很不错了。

huxw 发表于 2010-11-8 13:12:39

8# bainhome
谢谢你的耐心解答!
我看别人图中的位置非常理想,但也有可能不是matlab做的。
谢谢,我再试试。
页: [1]
查看完整版本: 老问题新问:contour怎么控制里面的标识数字