之前用Matlab作图,从网上找了些别人的例子,然后慢慢调参数。其实对很多命令,特别是对句柄不是很了解,今天简单总结了一下。下面用几个例子来说明:

 set(gcf,'Units','centimeters','Position',[   ]); 

首先,gcf是当前figure对象的句柄。作为figure对象,有很多属性(property),具体可以查询Matlab的帮助系统。例如,下面是帮助系统的介绍:

其中一个属性是Units,我们可以把它理解成编程语言中的枚举类型。它的几个值分别是:inches | centimeters | normalized | points | {pixels} | characters,这个对象的全称叫Units of measurement. 定于了用什么度量单位来interpret和位置、大小有关的数据。所有的度量都从窗口的左下角开始算起。

我们再看看Position这个属性:[left, bottom, width, height]这个向量中的left, bottom定义了figure窗口的左端和下端距离屏幕的左下角的距离。width, height定义了绘图窗口除了title bar, menu bar, tool bars, and outer edges的大小(以厘米为单位)

我们再来看看这两条语句:

 set(get(gca,'XLabel'),'FontSize',,'Fontname','Arial','FontWeight','bold');  
 set(gca, 'Position', [0.15 0.15 0.78 0.78]); 

这两条语句中都有gca,代表的是坐标轴的当前句柄(Current axes handle)。第二条语句定义了坐标轴相对于绘图窗口的位置,也是从左下角开始计算。对于第一条语句,我们可以理解为XLabel是坐标轴对象的一个成 员变量,只不过这个成员变量也是一个对象,所以要用get(gca,’XLabel’)这种方法才能设置XLabel的属性。

Matlab的主要图形对象有:

对象 描述

Root 对计算机屏幕最高级的对象

Figure 用来显示图形和用户界面的窗口

Axes 在窗口中显示图形的轴

Uicontrol 用户界面控制。执行一个对用户交互作用的函数。

Uimenu 用户定义窗口菜单

Uicontextmenu 右键单击对象时弹出的菜单

Image 二维像素基础图

Light 影响斑点和表面对象着色的光源

Line 用于诸如plot, plot3, semilogx 等函数的线

Patch 带边缘的填充多边形

Rectangle 二维形状,从矩形到椭圆

Surface 由x-y 平面以上的数据值所作图创建的矩阵数据的三维表示

Text 字符串

具体的用法可以参考这篇文章:http://www.doc88.com/p-339432229690.html

突然想起来一个很有意思的话题,再简单说两句,我们通常画图的时候,比较倾向于在论文中用灰度图,这时候其实区分度不是很明显,实际上我们可以指定填充的颜色更丰富些:

例如这篇日志中介绍的:

多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)
上面的plot格式中,选项是指为了区分多条画出曲线的 颜色,线型及标记点
而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜
色,不同的线型及标记点表示出来.

颜色属性
‘r’ 红色 ‘m’ 粉红
‘g’ 绿色 ‘c’ 青色
‘b’ 兰色 ‘w’ 白色
‘y’ 黄色 ‘k’ 黑色
线型属性

‘-’ 实线 ‘–’ 虚线
‘:’ 点线 ‘-.’ 点划线
标记点属性

‘.’ 用点号绘制各数据点 ‘^’ 用上三角绘制各数据点
‘+’ 用’+'号绘制各数据点 ‘v’ 用下三角绘制各数据点
‘*’ 用’*'号绘制各数据点 ‘>’ 用右三角绘制各数据点
‘ .’ 用’.'号绘制各数据点 ‘<’ 用左三角绘制各数据点
‘s’或squar 用正方形绘制各数据点’p’ 用五角星绘制各数据点
‘d’或diamond用菱 形绘制各数据点 ‘h’ 用六角星绘制各数据点
这些选项可以连在一起用,如:’-.g’表示绘制绿色的点划线,’g+’表示用绿
色的 ‘+’号绘制曲线.
注意:

1)表示属性的符号必须放在同一个字符串中;
2)可同时指定2~3个属性;
3)与先后顺序无关;
4)指定的属性中,同一种属性不能有两个以上.

例:

 t=:0.1:*pi;
 y1=sin(t);
 y2=cos(t);
 y3=sin(t).*cos(t);
 plot(t,y1, ‘-r’,t,y2, ‘:g’,t,y3, ‘*b’)

该程序还可以写成:

 t=:0.1:*pi;
 y1=sin(t);
 y2=cos(t);
 y3=sin(t).*cos(t);
 plot(t,y1, ‘-r’)
 hold on
 plot(t,y2, ‘:g’)
 plot(t,y3, ‘*b’)
 hold off

注:在MATLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形.
设置线宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),

填充颜色 (MarkerFaceColor)及标记点的大小(MarkerSize)

例:设置绘图线的线型,颜色,宽度,标记 点的颜色及大小:

 t=:pi/:pi;
 y=sin(*t).*sin(t)/;
 plot(t,y,’-bs’,'LineWidth’,2,… %设置线的宽度为2
‘MarkerEdgeColor’,'k’,… %设置标记点边缘颜色为黑色
 ‘MarkerFaceColor’,'y’,… %设置标记点填充颜色为黄色
 ‘MarkerSize’,) %设置标记点的尺寸为10

————————————————————————(以上内容为转载)

对于MarkerFaceColor这个属性,其实我们可以通过RGB值来进行更细粒度的指定,可以把后面的y变为:[.5 .5 .5],Matlab用这样一个向量,实际上指定了颜色的RGB值。只不过每一个值都是原来的RGB分量除以255。那么我们就可以对不同的形状指定不同 的灰度填充(三个分量一样,就是不同的灰度),其实看起来效果会好很多。例如下面这个图,是不是看起来更有区分度一些:

如果是一个彩色图,那选择就更多了。例如可以指定线条的颜色:

   
 plot(New(:,),'-*','Color',[  ]); 
就指定了一个红色的带星号的线条,其实可以指定很舒服的颜色(默认的绿色、黄色都过于亮,看不清),那么具体我们可以选什么颜色呢?可以看看类似这个PPT里面的介绍,用的时候分量除以255就可以了:

http://wenku.baidu.com/view/92cd63e4524de518964b7d18.html

【转】Matlab作图语句小结的更多相关文章

  1. 45个非常有用的 Oracle 查询语句小结

    45个非常有用的 Oracle 查询语句小结 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 ...

  2. 小论文matlab作图技巧

    小论文matlab作图技巧 编辑->复制选项 编辑->图形属性 图中右击->字型 编辑->复制图片,即可. 效果: 宽:5.9高: 7.91

  3. MATLAB作图方法与技巧(二)

    作为MATLAB作图方法与技巧(一)的补充 1.绘制二维散点图 ① scatter函数 scatter(x,y,s,c)函数绘制向量x和y的散点图,其中s代表点的大小,c代表点的形状,s和c缺省时为默 ...

  4. MATLAB作图方法与技巧(一)

    下面从折线图.曲面图和图形说明与定制三个方面说明MATLAB作图的一些方法与技巧,注意,文中出现的单引号在MATLAB中实际运行的时候,需要改为MATLAB认可的单引号. 一. 作折线图 1.plot ...

  5. vue之条件语句小结

    vue之条件语句小结 v-if, v-else 随机生成一个数字,判断是否大于0.5,然后输出对应信息: <!DOCTYPE html> <html> <head> ...

  6. matlab作图 latex插图

    推荐用saveas eps,再用eps2pdf转成pdf.这样可以之间pdflatex编译. if result.savepic saveas(gcf,[ pwd '/picture/right_' ...

  7. Java中使用MATLAB作图 .

    最近做一个项目,需要很多进行很多信号处理——小魏就是学软件的,对信号处理简直是个小白,最简单的实现就是傻瓜似的调用MATLAB的各种工具箱,达到目的就行. 同时,MATLAB是种解释性语言,执行效率比 ...

  8. MATLAB作图之一

    问题 在使用MATLAB当中的imagesc作图的时候,如果数据矩阵元素太少,得到的图看起来会很"粗糙"(图1).那么如何得到更为"圆润"的图像呢? A = r ...

  9. MySQL 常用的sql语句小结(待续)

    mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...

随机推荐

  1. 【ASP.NET MVC系列】数据验证和注解

    [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...

  2. Linux系统Java环境安装配置

    jdk安装配置 首先下载JDK和JRE,这里你的需要看看你的Linux系统是多少位的,比如我的是64位的: 下载JDK并指定到Download目录,JRE同样操作: 解压并且配置环境: tar -zx ...

  3. kafka中partition和消费者对应关系

    1个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果 消费者多于partition topic: test 只有一个partition 创建一个topic- ...

  4. deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面 听课笔记

    1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...

  5. POJ1635:Subway tree systems

    链接:http://poj.org/problem?id=1635 填坑树同构 题目给出的是除根外的括号序列表示. 其实只要跟你说hash大家都能写得出来…… hash函数取个效果别太差的就行了吧 # ...

  6. [51nod1709]复杂度分析

    给出一棵n个点的树(以1号点为根),定义dep[i]为点i到根路径上点的个数.众所周知,树上最近公共祖先问题可以用倍增算法解决.现在我们需要算出这个算法精确的复杂度.我们定义计算点i和点j最近公共组先 ...

  7. UVa 725 简单枚举+整数转换为字符串

    Division  Write a program that finds and displays all pairs of 5-digit numbers that between them use ...

  8. Graph(Floyd)

    http://acm.hdu.edu.cn/showproblem.php?pid=4034 Graph Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  9. c语言中标识符的作用域

    1.代码块作用域(block scope) 位于一对花括号之间的所有语句称为一个代码块,在代码块的开始位置声明的标识符具有代码块作用域,表示它们可以被这个代码中的所有语句访问.函数定义的形式参数在函数 ...

  10. [20160711][neven代码移植Windows]

    相关说明 neven代码用于人脸检测,该代码是从Android源代码中抽取出来的,可以在Linux系统下通过make命令直接进行编译,并且可以通过代码中opencv目录下的测试文件进行测试. 移植环境 ...