cscjx 发表于 2007-10-11 16:42

matlab如何进行数据绘图

请教各位高手,如何用matlab将这个图绘画出来?我是新手,请详细告诉我,谢谢!

[ 本帖最后由 eight 于 2007-10-11 19:50 编辑 ]

花如月 发表于 2007-10-11 16:55

里边涉及的绘图技巧本版面都有,请搜索一下。只要有数据就完全可以绘制出来

花如月 发表于 2007-10-11 18:18

直接在图形界面编辑会简单些,可以直接插入textbox。用程序就会麻烦点,坐标的标注和网格的绘制技巧版面里有。我这里给个用程序近似实现textbox的功能clear,clc;
x=-10:.1:10;
y=pdf('Normal',x,0,5);
plot(x,y);hold on
rectangle('Position',[-4,0.015,8,0.02],...
          'LineWidth',2,'EdgeColor','k');
text(-3.0,0.030,'最大值:0.08','fontsize',...
   16,'color','r');
text(-3.0,0.025,'最小值:0.01','fontsize',...
   16,'color','r');
text(-3.0,0.020,'平均值:0.04','fontsize',...
   16,'color','r');“textbox”的位置、大小、颜色和线型以及里边字体的属性都可以通过程序调整,可以近似实现不过没有通用性。
也想到用gui里提供的text和edit控件,不过edit不支持多行文本输入,有下边的错误提示:
Warning: Single line Edit Controls can not have multi-line text.
而用text是可以控制换行的,不过边框颜色和背景颜色一样(没找到设置边框颜色的地方),因此效果不太理想:lol 所以相比较而言,如果图上的带框文字如果用程序实现还是用code里的方法会好些

[ 本帖最后由 花如月 于 2007-10-11 18:57 编辑 ]

咕噜噜 发表于 2007-10-11 18:48

回复 #3 花如月 的帖子

花花,其实他这个文字编辑不是大问题
倒是你这个曲线啊楼主,没有数据怎么画,有的话,最简单的plot

花如月 发表于 2007-10-11 18:50

回复 #4 咕噜噜 的帖子

他应该会有数据的,不然不仅难度大而且似乎没有多大意义。

由于绘制网格和标注的程序讨论过多次了,有现成的。就是那个带框的文字,我觉得应该是在figure界面里通过insert-->textbox加上去的。如果用程序实现我是没有碰到过,因此就尝试尝试:lol 。这样加上3楼的东东再搜索一下论坛,他这个问题就搞定了。

还有即便没有绘图的原始数据,在精华帖子里也是有一个帖子讨论其坐标的求法的。

[ 本帖最后由 花如月 于 2007-10-11 19:35 编辑 ]

eight 发表于 2007-10-11 19:53

原帖由 花如月 于 2007-10-11 18:18 发表 http://www.chinavib.com/forum/images/common/back.gif
直接在图形界面编辑会简单些,可以直接插入textbox。用程序就会麻烦点,坐标的标注和网格的绘制技巧版面里有。我这里给个用程序近似实现textbox的功能clear,clc;
x=-10:.1:10;
y=pdf('Normal',x,0,5);
plot( ...

edit 控件能多行显示的,只要设置 max 属性为 2 就可以了

花如月 发表于 2007-10-11 20:04

回复 #6 eight 的帖子

edit变成多行后,右边会多个上线翻行的东西。text的边框颜色有没有办法设置?

eight 发表于 2007-10-11 20:18

原帖由 花如月 于 2007-10-11 20:04 发表 http://www.chinavib.com/forum/images/common/back.gif
edit变成多行后,右边会多个上线翻行的东西。text的边框颜色有没有办法设置?

恩,用 edit 控件的话,可以自制一个图片覆盖其表面,即设置其 CData 属性,不过比较复杂。用你上面的代码简单点吧,呵呵

text 的边框颜色:
EdgeColor
ColorSpec | {none}

Color of edge drawn around text extent rectangle plus margin.
This property enables you to specify the color of a box drawn around the text Extent plus the text Margin. For example,
the following code draws a red rectangle around text that labels a plot.

text(3*pi/4,sin(3*pi/4),...
'\leftarrowsin(t) = .707',...
'EdgeColor','red');

花如月 发表于 2007-10-11 20:46

回复 #8 eight 的帖子

晕了,把问题搞复杂了。忘了text函数本身有个'EdgeColor'属性了:loveliness: 我没找到text控件设置边框颜色的地方,经你提示text函数本身有这么个属性。那个带框的文字用下边一个text指令就搞定了:
plot(0:pi/20:2*pi,sin(0:pi/20:2*pi));
text(4,0.6,{'最大值:0.08','最小值:0.01','平均值:0.04'},...
   'EdgeColor','red','fontsize',14,'fontname','宋体');

lxq 发表于 2007-10-11 21:31

原帖由 花如月 于 2007-10-11 20:46 发表 http://www.chinavib.com/forum/images/common/back.gif
晕了,把问题搞复杂了。忘了text函数本身有个'EdgeColor'属性了:loveliness: 我没找到text控件设置边框颜色的地方,经你提示text函数本身有这么个属性。那个带框的文字用下边一个text指令就搞定了:
plot(0:pi ...


这个简洁多了:)

无水1324 发表于 2007-10-11 22:11

回复 #9 花如月 的帖子

如月,佩服了
matlab你们研究得这么透,又学习了。

花如月 发表于 2007-10-11 22:26

回复 #11 无水1324 的帖子

要学习的还很多呀,离透我可是差远了。和eight等前辈们的差距绝不可小视呀!

eight 发表于 2007-10-11 22:32

原帖由 花如月 于 2007-10-11 22:26 发表 http://www.chinavib.com/forum/images/common/back.gif
要学习的还很多呀,离透我可是差远了。和eight等前辈们的差距绝不可小视呀!
我也是略懂一二而已,呵呵,而且毕业后都没有以前那么频繁地使用 matlab 了,再迟点恐怕脑子会退化,还好,论坛助我平日锻炼一下脑子:loveliness:

另外,上面我说的“用自制图片设置 CData 属性”的方法可能行不通,因为设置了以后 text 控件的表面就被这个图片覆盖,这样一来,就可能显示不到文字了。还是用 text 函数比较方便、实用些

cscjx 发表于 2007-10-15 10:57

谢谢大家的指点,因为我没有数据,55555555!

VibrationMaster 发表于 2007-10-15 17:53

回复 #14 cscjx 的帖子

先将图形数据识别(检测)出来
页: [1] 2
查看完整版本: matlab如何进行数据绘图