• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Matlab 常用绘图指令(二维图形)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

使用matlab的时候常常会忘掉一些指令,每次都要重新查找,挺麻烦的,这里收集一些常用的绘图指令,供自己和大家以后方便查找和使用。

 

1、例子-包含了常用绘图命令

 1 clear
 2 clc
 3 
 4 %%数据准备
 5 x = 0:0.05:1;
 6 y = -x.*log(x);
 7 figure(1);%图像1
 8 set(gcf, \'color\',[0.1 0.5 1]);%设置整体图片的背景色
 9 
10 %%绘制曲线
11 plot(x,y,\'rs-\',\'LineWidth\',2,\'MarkerEdgeColor\',\'k\',...
12     \'MarkerFaceColor\',\'g\',...
13     \'MarkerSize\',10);
14 
15 %%在最大值位置添加文本
16 xe = 1/exp(1);
17 ye = -xe*log(xe);
18 hold on;
19 plot(xe,ye,\'pb\', \'MarkerSize\', 15,\'MarkerEdgeColor\',\'k\',\'MarkerFaceColor\',\'m\');
20 text(xe-0.02,ye+0.03,[\'最大值点(\',num2str(xe,3),\',\',num2str(ye,3),\')\'],...
21     \'FontSize\',12, \'Color\',[0.9 0.1 0.5], \'FontWeight\',\'bold\');
22 
23 %%设置标题
24 title(\'函数y = xlogx\',\'Color\',\'k\',\'FontSize\',30);
25 
26 %%坐标轴标题设置
27 xlabel(\'xlogx\',\'Color\',\'k\',\'FontSize\',20);%横轴标题
28 ylabel(\'y\',\'Color\',\'k\',\'FontSize\',20);%纵轴标题
29 
30 %%坐标轴刻度设置
31 set(gca, \'ytick\',x,\'yticklabel\',x,\'xtick\',x,...
32     \'xticklabel\',x, \'color\',[0.8 0.9 0.9],...
33     \'FontSize\',10); %xtick就是你要在哪些地方显示刻度,xticklabel就是显示什么内容
34 
35 %%坐标轴显示范围设置
36 axis equal  %强制坐标轴尺度相同,这个放在前面或者后面效果会不一样
37 xlim([0 1]);%x轴范围
38 ylim([0 0.5]);%y轴范围
39 
40 %%设置Legend
41 hleg = legend(\'y=xlogx\',\'Location\',\'SouthWest\');%本身不能设置字体的大小,需要通过set进行设置
42 set(hleg,\'FontSize\', 15, \'FontAngle\',\'italic\',\'FontWeight\',\'bold\',...
43     \'TextColor\',[.6,.2,.1],\'Color\',[1,1,1]);%Color为设置坐标的背景颜色
44 
45 %%网格设置
46 % grid on;%最简单的方式
47 % set(gca,\'XMinorGrid\',\'on\',\'YMinorGrid\');%设置最小网格,可以只设置其中的一种
48 set(gca,\'XGrid\',\'on\',\'YGrid\',\'on\');%设置大网格,可以只设置其中的一种
49 
50 %%全屏显示figure
51 scrsz = get(0,\'ScreenSize\');
52 set(gcf,\'Position\',scrsz);
53 
54 %%保存图像
55 set(1, \'InvertHardCopy\', \'off\');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
56 filename = \'xlogx\';
57 %print(1, \'-djpeg\', filename);%其他格式 -djpeg,-dpng,-dbmp,-dtiff,-dgif
58 saveas(1,filename,\'png\');%保存成图片,其他格式 jpeg,png,bmp,tiff,gif,另一种保存图像的方法
59 saveas(1,filename,\'fig\');%保存成figure文件

 

  以上代码的效果图如下所示:

 

2、线型、点标记和颜色

Matlab绘制曲线,主要包含三类属性,分别是曲线的类型,点标记及其颜色。默认下通过这三种符号的组合形成一个字符串来表现曲线。搭配的形式为:

‘线型+颜色+标记点’,例如\'-r+\'表示曲线为实直线,红颜色,曲线穿插有‘+’的点标记符。如下例子所示:

1 figure
2 t = 0:pi/20:2*pi;
3 plot(t,sin(t),\'-.r*\');
4 hold on
5 plot(t,sin(t-pi/2),\'--mo\');
6 plot(t,sin(t-pi),\':bs\');
7 hold off

 

 效果如下图所示:

 

下面给出了一些常用的线型,点标记和颜色类型:  

线型 颜色 标识符
指示符 线型 指示符 线型 指示符 线型
\'-\' 实线(默认) r 红色 \'+\' 加号
\'--\' 双划线 g 绿色 \'o\' 圆圈
\':\' 虚线 b 蓝色 \'*\' 型号
\'-.\' 点划线 c 蓝绿色 \'.\'
\'none\' 无线,不显示 m 洋红色 \'x\' 叉号
    y 黄色 \'square\' or \'s\' 正方形
    k 黑色 \'diamond\' or \'d\' 菱形
    w 白色 \'^\' 朝上三角符号
        \'v\' 朝上三角符号
        \'>\' 朝右三角符号
        \'<\' 朝左三角符号
        pentagram\' or \'p\' 五角星
        \'hexagram\' or \'h\'\'\' 六角星
        \'none\' 无标识符(默认)

 

 3、多图显示在一个Figure中 

需要用到subplot(m,n,p)函数,m表示行数,n表示列数,p表示第p个图,功能为:表示在m行n列的图上绘制第p个子图像;

实现代码如下:

 1 x = 0:0.1:20
 2 
 3 %图1
 4 y1 = sin(x).*cos(x)./x;
 5 figure(1);
 6 subplot(2,2,1);%子图1
 7 plot(x,y1,\'r\');
 8 title(\'y=sin(x)\');
 9 xlabel(\'x\');
10 ylabel(\'y\');
11 
12 %图2
13 y2 = cos(x)./x;
14 figure(1);
15 subplot(2,2,2);%子图2
16 plot(x,y2,\'b\');
17 title(\'y=cos(x)\');
18 xlabel(\'x\');
19 ylabel(\'y\');
20 
21 %图3
22 y3 = x.*sin(x);
23 figure(1);
24 subplot(2,2,3);%子图3
25 plot(x,y3,\'k\');
26 title(\'y=cos(x)\');
27 xlabel(\'x\');
28 ylabel(\'y\');
29 
30 %图4
31 y4 = x.*cos(x.^0.5);
32 figure(1);
33 subplot(2,2,4);%子图4
34 plot(x,y4,\'m\');
35 title(\'y=cos(x)\');
36 xlabel(\'x\');
37 ylabel(\'y\');
38 
39 %%全屏显示figure
40 scrsz = get(0,\'ScreenSize\');
41 set(gcf,\'Position\',scrsz);
42 %%设置颜色
43 set(gcf, \'color\',[0.1 0.5 1]);%设置整体图片的背景色
44 set(1, \'InvertHardCopy\', \'off\');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
45 saveas(1,\'result\',\'png\');%保存成图片,其他格式 jpeg,png,bmp,tiff,gif,另一种保存图像的方法

 

效果图如下:

 

4、句柄,以及gcf,gca和gco三者的区别

  图形句柄的理解

  Matlab和Windows中的句柄类似,Figure是Matlab中最常用的图像对象。假设现在又多个Figures(我们视他们为对象),想对其中某个Figure进行操作,未完成这样的功能,Matlab给每个FIgure都分配了一个不同的ID(是一个数,例如1,2,3,...),而这个ID就是一个句柄。有了这个句柄我们就可以对指定相应的图形窗口,进行相应的操作,如颜色设置,字体设置和线型设置等。下面是一个关于三个图形操Figure作的例子: 

 1 clc
 2  close all
 3 %%产生三个句柄
 4 figure(1)%产生一个图形figure,并赋予句柄值为1
 5 figure(2)%产生一个图形figure,并赋予句柄值为2
 6 figure(3)%产生一个图形figure,并赋予句柄值为3
 7 
 8 %%操作Figure2
 9 %handle = 2;%这是错误的指定方式
10 handle = figure(2);%获取figure2的句柄
11 surf(peaks);
12 title(\'Figure2\',\'Color\',\'w\',\'FontSize\',20);
13 
14 set(handle,\'Color\',[0,0.5,0.5],\'Toolbar\',\'none\')
15 set(handle, \'InvertHardCopy\', \'off\');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
16 
17 %%操作Figure1
18 handle = figure(1);%获取figure1的句柄
19 set(handle, \'InvertHardCopy\', \'off\');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
20 surf(peaks);
21 title(\'Figure1\',\'Color\',\'w\',\'FontSize\',20);
22 set(handle,\'Color\',[0,0.0,0.5],\'Toolbar\',\'none\')
23 
24 %%操作Figure3
25 handle = figure(3);%获取figure3的句柄
26 set(handle, \'InvertHardCopy\', \'off\');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
27 surf(peaks);
28 title(\'Figure3\',\'Color\',\'w\',\'FontSize\',20);
29 set(handle,\'Color\',[0.5,0.0,0.5], \'Toolbar\',\'none\')
30 
31 saveas(1,\'1\',\'png\');
32 saveas(2,\'2\',\'png\');
33 saveas(3,\'3\',\'png\');

  结果如下图所示:  

  除了常用的Figure外,Axes也是常用的句柄,还有其他的对象,它们是用以显示图形和用户界面元素的基本元素,但用的较少,下表列出了各种图形对象:

对象 描述
Root 对计算机屏幕最高级的对象
Figure 用来显示图形和用户界面的窗口
Axes 在窗口中显示图形的轴
Uicontrol 用户界面控制。执行一个对用户交互作用的函数。
Uimenu 用户定义窗口菜单
Uicontextmenu 右键单击对象时弹出的菜单
Image 二维像素基础图
Light 影响斑点和表面对象着色的光源
Line 用于诸如plot,plot3,semilogx,等函数的线
Patch 带边缘的填充多边形
Rectangle 二维形状,从矩形到椭圆
Surface 由x-y平面以上的数据值所作图创建的矩阵数据的三维表示
Text 字符串

  gcf,gca和gco

  gcf 返回当前Figure 对象的句柄值,可以操作图形的整体效果,如背景色,图形打印设置等
  gca 返回当前axes 对象的句柄值,可以操作坐标轴的效果,包括了坐标轴的刻度,显示范围,字体大小,字体磅数(普通,加粗),字体方向(斜体,正体)
  gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。

 

4、参考资料

  [1]. http://blog.sina.com.cn/s/blog_675eb4fd0100tvhp.html

  [2]. http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html

  [3]. http://blog.csdn.net/wguoyong/article/details/6873877

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphiFastReport安装方法delphiFastReport安装方法发布时间:2022-07-18
下一篇:
大富翁delphi论坛http--www.delphibbs.com发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap