zoukankan      html  css  js  c++  java
  • 【转】Matlab作图语句小结

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

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

    首先,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的大小(以厘米为单位)

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

      1 set(get(gca,'XLabel'),'FontSize',9,'Fontname','Arial','FontWeight','bold');  
      2 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)指定的属性中,同一种属性不能有两个以上.

        例:

        1 t=0:0.1:2*pi;
        2 y1=sin(t);
        3 y2=cos(t);
        4 y3=sin(t).*cos(t);
        5 plot(t,y1, ‘-r’,t,y2, ‘:g’,t,y3, ‘*b’)


        该程序还可以写成:

        1 t=0:0.1:2*pi;
        2 y1=sin(t);
        3 y2=cos(t);
        4 y3=sin(t).*cos(t);
        5 plot(t,y1, ‘-r’)
        6 hold on
        7 plot(t,y2, ‘:g’)
        8 plot(t,y3, ‘*b’)
        9 hold off


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

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

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

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

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

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


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

           
        1 plot(New(:,10),'-*','Color',[1 0 0]); 


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

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

      1. 相关阅读:
        MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件
        MapServer Tutorial——MapServer7.2.1教程学习——教程背景
        MapServer Tutorial——MapServer7.2.1教程学习(大纲)
        MapServer Configuring with IIS
        GDAL源码编译(32位)
        开机自启动相关程序
        异常:Invalid character found in the request target. The valid characters are defined in RFC 3986
        如何将解压版的tomcat设置为windows 服务启动
        修改Tomcat控制台标题
        Tomcat控制台中文乱码解决办法
      2. 原文地址:https://www.cnblogs.com/xiongyunqi/p/3736621.html
      Copyright © 2011-2022 走看看