第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制

Slides:



Advertisements
Similar presentations
第六章 统计表与统计图 第一节 统计表 第二节 统计图 1.
Advertisements

SCILAB第二章 二維平面繪圖 撰文者: 1.中央大氣科學系 楊善文 2. (如對本文有貢獻者,記得在此留名)
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
MATLAB程序设计教程(第二版) 刘卫国 主编 中国水利水电出版社.
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
MATLAB程序设计基础 MATLAB的图形处理.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
§ 5.1 导数 § 5.2 求导法则与导数公式 § 5.3 隐函数与参数方程求导 § 5.4 微分 § 5.5 高阶导数与高阶微分
REVIEW 基本XYZ立體繪圖命令 MATLAB 程式設計與應用 張智星
XV. Applications of Wavelet Transforms
Chap.3 二維平面繪圖 方煒 台大生機系.
二、随机变量及其分布 主讲教师:董庆宽 副教授 研究方向:密码学与信息安全
黃聰明 國立臺灣師範大學數學系 其它的資料型態與繪圖型態 黃聰明 國立臺灣師範大學數學系 T.-M.Huang.
MATLAB 程式設計進階篇 一般數學函數的處理與分析
機率與統計 Introduction   講師:黃弘州.
第六章 图 形 基 础 6.1 概述 6.2 基本二维绘图 6.3 格式化绘图 6.4 特殊图形函数 6.5 基本三维绘图
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
大学数学实验 欢迎进入 MATLAB 世界 作者 薛长虹 数学系 地址:
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Origin绘图和数据分析 2006年11月.
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
第二章 离散傅里叶变换 及其快速算法(8学时 )
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
第4章 MATLAB绘图 4.1 MATLAB二维曲线绘图 基本绘图指令 1.plot(Y) 功能:画一条或多条折线图.
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
第三章 z变换及离散系统的频域分析 课程名称:数字信号处理 任课教师:张培珍 授课班级:信计
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
2.9  正弦函数、余弦函数的图象和性质(三) 一、素质教育目标 (一)知识教育点 复习三角函数线,正弦函数和余弦函数的图象和性质.
数学模型实验课(三) 插值与三维图形.
第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制
Introduction to MATLAB
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
§ 9.1常用数学软件简介及MATLAB基础知识
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
MATLAB 程式設計入門篇 動畫製作.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
MATLAB 程式設計入門篇 二維平面繪圖 (part2)
1.函数 2.程序 3.图形 目的:掌握Matlab作平面曲线图的方法与技巧
第九单元 第1课 实验 Matlab动画 1.洛仑兹非线性奇异方程所描述的无序运动 2.作y=sin(x)的程序动画(1)
MATLAB 入门教程.
第三单元 第3课 实验 多元函数的积分 实验目的:掌握matlab计算二重积分与三重积分的方法,提高应用重积分解决有关应用问题的能力。
MATLAB 程式設計入門篇 二維平面繪圖 改自張智星講義
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
Z Mathematical Model ‡ ' 图形处理.
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
第 四 章 迴歸分析應注意之事項.
两个变量的线性相关 琼海市嘉积中学 梅小青.
慢跑者与狗 一个慢跑者在平面上沿椭圆以恒定的速率v=1跑步,设椭圆方程为: x=10+20cost, y=20+5sint. 突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹. 1. 模型建立 设时刻t慢跑者的坐标为(X(t),Y(t)),狗的坐标为(x(t),y(t)).
1.5 Matlab绘图 plot(y) plot(x,y)
线性回归.
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
科研工具之图表制作---Sigmaplot
Presentation transcript:

第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制 3.6 颜色控制 3.7 高级绘图函数 3.8 图形函数 习题

3.1 图 形 绘 制 这里以产生一个简单的正弦函数曲线为例来说明图形的绘制,这一过程在MATLAB中是很简单的。设要产生0~2π之间的正弦函数,则可按下列步骤进行:   (1) 产生x轴、y轴数据   >> x=0:pi/20:2*pi;   >> y=sin(x);   (2) 打开一个新的图形窗口   >> figure(1)

  (3) 绘制出正弦曲线   >> plot(x,y, 'r-')   其中 'r−' 表示以红色实线绘制出正弦曲线。   (4) 给图形加上栅格线:   >> grid on   这样就可以得到如图3.1所示的正弦曲线。从这一过程可以看出,在MATLAB中建立曲线图形是很方便的。  

  我们还可以将图形窗口进行分割,从而绘制出多条曲线。例如,将图形窗口分割成2×2的窗格,在每个窗格中分别绘制出正弦、余弦、正切、余切函数曲线,其MATLAB程序为 x=0:pi/50:2*pi; k=[1 26 51 76 101]; x(k)=[]; %删除正切和余切的奇异点 figure(1)

subplot(2,2,1) plot(x,sin(x)), grid on %绘制正弦函数曲线 subplot(2,2,2) plot(x,cos(x)), grid on %绘制余弦函数曲线 subplot(2,2,3) plot(x,tan(x)), grid on %绘制正切函数曲线 subplot(2,2,4) plot(x,cot(x)), grid on %绘制余切函数曲线

图3.1 正弦曲线

执行后得到如图3.2所示的三角函数曲线。 图3.2 常用三角函数的曲线

3.2 图 形 标 注   绘制图形后,还要给图形进行标注。例如,可以给每个图加上标题、坐标轴标记和曲线说明等。给图3.1加上标题和轴标记,可输入 title('sin(\alpha)') xlabel('\alpha') ylabel('sin(\alpha)')   则可以得到如图3.3所示的结果。这里\alpha表示α,取自于Tex字符集,详见附录A的text函数中的字符集。

图3.3 含标题的正弦曲线

  利用legend函数可对图中的曲线进行说明。例如,在同一张图上可得到y=x2和y=x3曲线,然后利用legend函数对曲线进行标注。MATLAB程序为 figure(1) plot(x,y1, 'r-', x, y2, 'k.'), grid on legend('\ity=x^2', '\ity=x^3') title('y=x^2和y=x^3曲线') xlabel('x'), ylabel('y')

  执行后得到如图3.4所示的曲线。从这一示例可以看出,MATLAB标注函数中可以采用中文字符,这极大地方便了用户。特别值得一提的是,在字符串中,“^”表示上标,“_”表示下标。

图3.4 插图说明使用示例

  利用text函数也可以对曲线进行标注。例如,在同一张图上绘制出正弦和余弦曲线,则MATLAB程序为 x=0:pi/50:2*pi; y1=sin(x); y2=cos(x); figure(1) plot(x, y1, 'k-', x, y2, 'k-'), grid on text(pi, 0.05, '\leftarrow sin(\alpha)') text(pi/4-0.05, 0.05, 'cos(\alpha)\rightarrow') title('sin(\alpha) and cos(\alpha)') xlabel('\alpha'), ylabel('sin(\alpha) and cos(\alpha)')

图3.5 文本标注使用示例

3.3 对数和极坐标系中图形绘制   有时变量变化范围很大,如x轴从0.01到100,这时如果仍采用plot绘图,就会失去局部可视性,因此应采用对数坐标系进行绘图。例如,求0.01~100之间的常用对数(以10为底的对数),MATLAB程序为 x=0.01:.01:100; y=log10(x); figure(1) subplot(2,1,1) plot(x,y,'k-'), grid on title('\ity=log_{10}(x) in Cartesian coordinates'), ylabel('y')

subplot(2,1,2), grid on semilogx(x,y,'k-') %半对数绘图 title('\ity=log_{10}(x) in Semi-log coordinates') xlabel('x'), ylabel('y')

图3.6 笛卡尔和对数坐标系中曲线的对比

  对于任一矩阵,通过eig函数可求出其特征值,从而了解矩阵的特性,为此希望能够直观地显示出特征值。由于特征值一般为复数,因此可利用polar函数在极坐标系中进行表示。例如,输入:

a=randn(2,2); b=eig(a) c1=abs(b), c2=angle(b) figure(1) subplot(2,1,1) plot(b,'rx'), grid on title('Plot using Cartesian coordinates') subplot(2,1,2) polar(c2,c1,'rx') gtext('Plot using polar coordinates')

  在控制系统中,可以求出系统的零极点,然后利用polar函数在极坐标系中绘制出零极点图,直观地显示出系统的零极点,这有助于我们对控制系统进行深入了解。如输入MATLAB程序: num=[1 1.1]; den=[1 2 5 7 4]; [z,p,k]=tf2zp(num,den); c1=abs(z);c2=angle(z); c3=abs(p);c4=angle(p); figure(1) polar(c4,c3,'bx') hold on,polar(c2,c1,'ro') gtext('极坐标系中零极点的表示')

图3.7 笛卡尔和极坐标系中特征值的表示

图3.8 极坐标系中系统零极点的表示

3.4 复杂图形绘制   在同一个图形窗口中绘制多条曲线是MATLAB的一大功能,这可以有多种应用方法。第一种方法是将曲线数据保存在n×m的矩阵y中,而x为相应的x轴向量n×1或1×n,则plot(x,y)命令可以在同一个图形窗口中绘制出m条曲线。这种方法非常适用于由其它软件产生的数据,然后由load命令读入到MATLAB中,并绘制出曲线。例如,MATLAB提供了一个多峰函数peaks.m,其函数表达式为

利用这一函数,可以方便地产生多条曲线的数据 [x,y]=meshgrid(-3:0.15:3); %产生41×41的输入矩阵 z=peaks(x,y); %计算相应的峰值函数 然后利用plot函数可直接绘制出这41条曲线 x1=x(1,:); plot(x1, z), grid on 这时可得到如图3.9所示的多条曲线。

图3.9 多峰函数的多条曲线

  绘制多条曲线的第二种方法是在同一个plot函数中分别指定每条曲线的坐标轴数据,即采用plot(x1, y1, x2, y2,…)。例如,对于下列两个函数(这是神经网络中的两个重要函数:logsig和tansig):

  可分别求出−5~5之间的值,在同一张图上画出曲线,并利用legend函数对曲线进行说明,MATLAB程序为 x=[-5:.1:5]; y1=1./(1+exp(-x)); y2=(1-exp(-x)).*y1; figure(1) plot(x,y1,'r-',x,y2,'b.'),grid on legend('logsig函数', 'tansig函数', 4) title('多条曲线')

图3.10 logsig和tansig函数曲线

  绘制多条曲线的第三种方法是利用hold on命令。先在图形窗口中绘制出第一条曲线,然后执行hold on(保持原有图像元素)命令,最后绘制出第二条、第三条等曲线。例如,对于图3.10中的曲线,也可以采用下列的MATLAB程序获得: figure(1) plot(x,y1,'r-') hold on plot(x,y2,'b--') grid on   

  利用这种方法在绘制曲线后,可同时在数据点上以特殊记号进行标注。例如,在绘制出简单的正弦函数后,可以用圆圈表示各个数据点,程序如下: x=0:pi/20:2*pi; y=sin(x); figure(1) plot(x,y,'r-') hold on plot(x,y,'bo'), grid on title('sin(\alpha)') xlabel('\alpha'),ylabel('sin(\alpha)')

图3.11 正弦曲线

  利用plotyy函数可绘制出双y轴的图形,这样在同一张图上表示两条曲线时,可拥有各自的y轴。例如,在同一张纸上绘制出双y轴的y1=sin(t)和y2=2cos(t)函数,MATLAB程序为 t = -pi:pi/20:pi; y1 = sin(t); y2 = 2*cos(t); plotyy(t,y1,t,y2), grid on title(' sin(t) and cos(t) ') text(0,0,'\leftarrow sin(t)') text(pi/2,0,'\leftarrow 2cos(t)')

  执行后可得到如图3.12所示的结果。图中左边轴为第一条曲线的垂直轴,右边轴为第二条曲线的垂直轴,从图中可以看出,虽然y1和y2具有不同的值域,但由于采用了双y轴,因此两条曲线在显示上具有相同的幅值。

图3.12 双y轴正余弦曲线

3.5 坐 标 轴 控 制   利用box函数可以控制图形的上边框和右边框,box on、box off可分别显示和隐去上边框和右边框,box命令为乒乓开关,可以在这两种状态之间切换。为了更加灵活地控制各个边框(坐标轴),可以采用axes命令。例如在[0,pi/2]之间绘制出y=tan(x)曲线,然后利用box off命令去掉边框,MATLAB程序为 x=0:.025:pi/2; y=tan(x); figure(1) plot(x,y,'r-o'), grid on box off title('正切函数'), xlabel('角度(弧度)')

图3.13 正切函数曲线

  axis(与上面提到的axes不同)命令用于控制坐标轴的刻度。一般在绘制曲线时,系统会根据所采用的数据自动生成适当的坐标轴刻度,但有时需要进行修改,比如在两个曲线对比时,应采用相同的比例因子,以便直观地比较大小。设已由其它系统测量出两种方法的误差,保存于err.dat中,其中第一列为采样时刻,第二、三列分别为两种方法的测量值。现直接绘制出误差曲线,同时绘制出利用axis修改成相同比例后的误差曲线。MATLAB程序为  

load err.dat t=err(:,1); e1=err(:,2); e2=err(:,3); figure(1) subplot(2,2,1), plot(t,e1,'k'),title('误差1') subplot(2,2,3), plot(t,e2,'k'),title('误差2') subplot(2,2,2), plot(t,e1,'k'),title('坐标轴调整后的误差1') axis([0 .3 -4 4]) subplot(2,2,4), plot(t,e2,'k'),title('坐标轴调整后的误差2')

图3.14 测量误差的比较

  为了更清楚地观察曲线的局部特性,也可以修改坐标轴刻度,例如,对于一个复杂函数 y=cos(tan(πx))

  利用plot函数绘制出曲线时,在x=0.5附近区域几乎看不清楚。现在利用axis函数调整x轴的刻度,则可以比较清楚地看到这一局部区域。MATLAB程序为 x=0:1/3000:1; y=cos(tan(pi*x)); figure(1) subplot(2,1,1), plot(x,y) title('\itcos(tan(\pix))') subplot(2,1,2), plot(x,y) axis([0.4 0.6 -1 1]); title('复杂函数的局部透视')

  axis equal可使绘制图形的x、y轴等长,这样可以使绘制的圆成为真正的圆。例如: t = 0:pi/20:2*pi; figure(1) subplot(2,2,1),plot(sin(t),cos(t)) title('圆形轨迹') subplot(2,2,2),plot(sin(t),2*cos(t)) title('椭圆形轨迹') subplot(2,2,3),plot(sin(t),cos(t)),axis square title('调整后的圆形轨迹') subplot(2,2,4),plot(sin(t),2*cos(t)),axis square title('调整后的椭圆形轨迹') 执行后得到如图3.16所示的轨迹。

图3.15 复杂函数曲线的局部透视

图3.16 调整前、后的圆轨迹

  利用axis off命令可以关闭坐标轴的显示,产生不含有坐标轴的图形。例如: t = 0:pi/20:2*pi; [x,y] = meshgrid(t); z = sin(x).*cos(y); figure(1) plot(t,z), axis([0 2*pi -1 1]) box off, axis off title('无坐标轴和边框图形') 执行后得到如图3.17所示的曲线。

图3.17 无坐标轴与边框的曲线

3.6 颜 色 控 制   在绘制曲线时可直接指定曲线的颜色,在标注文本如title,xlabel,ylabel,zlabel,text命令中,可利用文本特性Color来指定文本的颜色。例如,下列的MATLAB程序可产生红色的曲线、绿色的标题、蓝色的x与y轴标注和黑色的曲线标注。

x=[-pi:pi/20:pi]; y=exp(-2*sin(x)); figure(1) plot(x,y,'r-'), grid on title('绿色的标题(y=e^{-2sin(x)})','Color','g') xlabel('蓝色的x轴标注','Color','b') ylabel('蓝色的y轴标注','Color','b') text(−0.6,3.8,'\leftarrow黑色的曲线标注','Color','k')

图3.18 颜色控制

  利用colormap函数可以改变每种颜色的色调,MATLAB提供了许多种不同用途的颜色板。为了进一步了解各种颜色板的颜色,可输入 cmap=colormap; L=length(cmap); x=[1:L]; y=x'*ones(size(x)); figure(1) bar(x(1:2),y(1:2,:)) title('gray颜色板的颜色') colormap('gray')

图3.19 gray(灰度)颜色板的颜色

  MATLAB专门提供了人体脊骨的图像数据(spine),利用bone颜色板可更清晰地显示这一类图像。MATLAB程序为 load spine image(X) colormap bone title('人体脊骨图') 执行后得到如图3.20所示的人体脊骨图。

图3.20 人体脊骨图

3.7 高级绘图函数   除了前面介绍的以二维平面为图形窗口的绘图功能外,MATLAB还提供了一些功能很强的高级绘图函数,如表3.1所示,这里分类给出一些函数的使用说明。

表3.1 高级绘图函数

3.7.1 区域、条形及其饼图 1. bar,barh 功能:绘制出条形图。 格式: bar(Y) bar(x, Y) bar(…, width) bar(…, 'style') bar(…, 'bar_color')

  说明:   bar和barh函数可在二维平面上绘制出条形图,它以条形块来表示数值的大小。bar函数绘制出的条形图呈竖直方向,barh函数绘制出的条形图呈水平方向,其应用格式完全一致,因此,这里仅给出bar函数的说明。   bar(Y)可以绘制出Y的条形图,当Y为矩阵时,则bar函数将由每行元素产生的条形聚合成组。当Y为向量时,x轴的范围为[1,length(Y)];当Y为矩阵时,x轴的范围为   [1,size(Y, 1)]。   bar(x, Y)可以指定x轴坐标,向量x中的值可以是非单调的,但不能包含重复的值。当Y为矩阵时,则在x位置上对Y每行元素产生的条形进行聚合。 

  bar(…,width)可以设定各个条形的宽度,并且可以控制组内条形的分割,缺省的宽度为0.8。   bar(…,'style') 可以指定条形的风格:'grouped'、'stacked',缺省值为'grouped'。当'style'取'grouped',表示分组绘制条形图,即Y中每一行为一组,分别按不同颜色绘出条形图;取'stacked',表示将每组中的值分段以不同颜色绘制出条形图,即每一行中的值一个接一个绘制在同一个条形块中。   bar(…, 'bar_color')可以指定条形块的颜色。   例如输入   x = -2.9:0.2:2.9;   bar(x,exp(-x.*x),'r')   title('条形图\ity=e^{-x^2}')

图3.21 简单的条形图

  例如,利用随机函数rand产生一个矩阵,这样可以得到更复杂的条形图。MATLAB程序为 Y = round(rand(5,3)*10); figure(1) subplot(2,2,1),bar(Y,'group'),title 'Group' subplot(2,2,2),bar(Y,'stack'),title 'Stack' subplot(2,2,3),barh(Y,'stack'),title 'Stack' subplot(2,2,4),bar(Y,1.5),title 'Width = 1.5'

图3.22 复杂的条形图

2.bar3, bar3h 功能:绘制出三维条形图。 格式: bar3(Y) bar3(x, Y) bar3(…, width) bar3(…, 'style') bar3(…, 'bar_color')   说明:   bar3和bar3h函数可在三维空间上绘制出条形图,它以条形块来表示数值的大小。其它说明类似于bar、barh函数。

例如,执行下面程序可以得到如图3.23所示的三维条形图。 Y = cool(7); subplot(2,2,1) bar3(Y,'detached') title('Detached') subplot(2,2,2) bar3(Y,0.25,'detached') title('Width = 0.25') subplot(2,2,3) bar3(Y,'grouped') title('Grouped') subplot(2,2,4) bar3(Y,'stacked') title('Stacked') colormap([1 0 0;0 1 0;0 0 1])

图3.23 三维条形图

  3. pie   功能:绘制出饼图。   格式:   pie(X)   pie(X, explode)   pie(…, labels)   说明:   pie(X)可以将X中的数据绘制出饼图;Pie(x, explode) 可利用explode指定分离出的切片;pie(…, labels)可以为每个切片添加文本标注,这时标注个数必须与X中的元素个数一致。  

图3.24 饼图

例如输入 x = [1.1 2.8 0.5 2.5 2]; explode = [0 1 0 0 0]; figure(1) colormap hsv pie(x,explode) title('饼图')

  4.pie3   功能:绘制出三维饼图。   格式:   pie3(X)   pie3(X, explode)   pie3(…, labels)   说明:   pie3函数可绘制出三维的饼图,其说明类似于pie函数。例如输入 >> x = [1 3 0.5 2.5 2]; >> explode = [0 1 0 0 0]; >> pie3(x,explode)

图3.25 三维饼图

5.area 功能:二维图形的填充区域。 格式: area(Y) area(X, Y) area(…, basevalue) area(…, 'PropertyName', PropertyValue, …) area(axes_handle, …) h = area(…) area('v6', …)

  说明:   图形区域为Y元素之下的部分,当Y为矩阵时,图形的高度由Y每一行的和值构成。area(Y)可以绘出以向量Y和矩阵Y每一列和值的区域图形,x轴会自动调整为1:size(Y, 1)。当X、Y为向量时,area(X, Y)等同于plot(X, Y),只是对区域[0, Y]进行填充;当Y为矩阵时,area(X, Y)以填充方式绘出Y的所有列。   在area(…, basevalue)命令中,可以指定填充区域的基值basevalue,缺省的基值为0;area(…, 'PropertyName',PropertyValue, …)可以指定图形特性的值。

例如,输入 >> Y = [1, 5, 3; 3, 2, 7; 1, 5, 3; 2, 6, 1]; >> area(Y),grid on >> colormap gray >> title 'Stacked Area Plot'

图3.26 图形区域

3.7.2 等高线绘图 1.contour 功能:绘制矩阵的等高线。 格式: contour(Z) contour(X, Y, Z) contour(Z, n) contour(X, Y, Z, n) contour(Z, v) contour(X, Y, Z, v) contour(…, LineSpec)

  说明:   contour函数可以绘制出矩阵的等值线,利用clabel函数可以对等值线进行标注。   contour(Z) 可以绘制出矩阵Z的等值线,其值间隔自动选取;contour(Z, n)可以采用固定的间隔n(n为变量);contour(Z, v)可以在向量v中指定间隔,间隔数必须等于length(v)。在contour(X, Y, Z)、contour(X, Y, Z, n)和contour(X, Y, Z, v)中,X、Y指定x轴和y轴的上、下限,Z为高度值。contour(…, LineSpec)可以利用LineSpec指定等高线的形状和颜色。

例如,执行下面程序可以得到如图3.27所示的等高线图形。 [X,Y] = meshgrid(-2:.2:2, -2:.2:3); Z = X.*exp(-X.^2-Y.^2); [C,h] = contour(X,Y,Z); set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2); title('The contour') colormap gray

图3.27 等高线图形

2.contour3 功能:绘制出矩阵的三维等高线。 格式: contour3(Z) contour3(X, Y, Z) contour3(Z, n) contour3(X, Y, Z, n) contour3(Z, v) contour3(X, Y, Z, v) contour3(…, LineSpec)

  说明:   contour3可以绘出三维的等高线,其说明类似于contour函数。例如,执行下面程序可以得到如图3.28所示的等高线图形。 [X,Y] = meshgrid([-2:.25:2]); Z = X.*exp(-X.^2-Y.^2); contour3(X,Y,Z,30) surface(X,Y,Z,'EdgeColor',[.8 .8 .8],'FaceColor','none') title('The three-dimensional contour '),grid off view(-15, 25)

图3.28 等高线图形

3.contourf 功能:绘制并填充二维等高线图。 格式: contourf(Z) contourf(X, Y, Z) contourf(Z, n) contourf(X, Y, Z, n) contourf(Z, v) contourf(X, Y, Z, v)

  说明:   contourf函数可以绘制出矩阵的等值线,并在等高线之间用不同的颜色填充,colormap函数会影响显示的颜色。实际上,contourf与contour函数类似,只是填充了颜色,因此其它说明参见contour函数。   例如,contourf(peaks(20),10)可以产生峰值函数peaks的等高线,如图3.29所示。

图3.29 峰值函数的等高线

3.7.3 方向与速度绘图 1.comet 功能:绘制二维彗星图形。 格式: comet(y) comet(x,y) comet(x,y,p)

  说明:   彗星图形是一幅生动的图形,其头部用圆圈表示,尾部用直线表示,用来表示数据的轨迹。   函数comet(y)可以显示出向量y的彗星图;comet(x, y)可以显示出向量x与y的彗星图;comet(x, y, p)可以指定彗星的长度p*length(y),其中p的缺省值为0.1。   例如,执行下面程序可以得到如图3.30所示的彗星图形,同时也给出了向量x和y的时间曲线,如图3.31所示。

t = 0:.01:2*pi; x = cos(2*t).*(cos(t).^2); y = sin(2*t).*(sin(t).^2); figure(1) comet(x,y); figure(2) plot(t,x,'k-',t,y,'k--'),title('The curves of x and y')

图3.30 彗星图形

图3.31 数据x和y曲线

2.comet3 功能:绘制三维彗星图形。 格式: comet3(z) comet3(x, y, z) comet3(x, y, z, p)

  说明:   函数comet3可以显示出向量y的三维彗星图,其它说明类似于comet函数。例如,执行下面程序,可以清楚看到三维的彗星图。 t = -10*pi:pi/250:10*pi; figure comet3((cos(2*t).^2).*sin(t), (sin(2*t).^2).*cos(t),t);

3.compass 功能:绘制出罗盘图(从原点发出的箭头图)。 格式: compass(U, V) compass(Z) compass(…, LineSpec)

  说明:   罗盘图为从原点发出的箭头图。compass(U,V)可以绘制出n(n=length(U)或n=length(V))个箭头,每个箭头的起点在原点,终点由(U(i),V(i))确定;在compass(Z)中,Z为复数,箭头的终点由(real(Z),imag(Z))确定;compass(…, LineSpec)可以指定绘图的线型、符号和颜色。例如,输入 >>Z = eig(randn(20,20)); >>compass(Z) 执行后可以得到如图3.32所示的罗盘图。

图3.32 罗盘图

4.feather 功能:绘制速度向量图。 格式: feather(U,V) feather(Z) feather(…, LineSpec)

  说明:   速度向量图为从水平轴等间隔处出发的向量。feather(U, V)可以显示出速度向量图,其中U指定向量终点的x轴坐标,V指定向量终点的y轴坐标;在feather(Z)中,Z为复数,向量的终点由(real(Z), imag(Z))确定;feather(…, LineSpec)可以指定绘图的线型、符号和颜色。例如,输入 >>theta = (-90:10:90)*pi/180; >>r = 2*ones(size(theta)); >> [u,v] = pol2cart(theta,r); >>feather(u,v);

图3.33 速度向量图

5.quiver 功能:绘制颤抖或速度图。 格式: quiver(x, y, u, v) quiver(u, v) quiver(…, scale) quiver(…, LineSpec) quiver(…, LineSpec,'filled')

  说明:   quiver(x, y, u, v)可以在(x, y)处显示出以(u, v)为内容的箭头,用以表示速度向量。矩阵x、y、u、v必须具有相同的尺寸。其它格式的说明参见在线帮助。例如下面程序可以计算出函数的梯度场,并以颤抖图表示,执行后得到如图3.34所示的结果。 [X,Y] = meshgrid(-2:.2:2); Z = X.*exp(-X.^2 - Y.^2); [DX,DY] = gradient(Z,.2,.2); contour(X,Y,Z) hold on quiver(X,Y,DX,DY)

图3.34 函数的梯度场

6.quiver3 功能:绘制三维的颤抖或速度图。 格式: quiver3(x, y, z, u, v, w) quiver3(z, u, v, w) quiver3(…, scale) quiver3(…, LineSpec) quiver3(…, LineSpec,'filled')

  说明:   quiver3 函数与quiver函数类似,只是在三维空间中绘制出速度图。例如下面的程序可以计算出函数的梯度场,并以三维空间中的速度图表示,执行后得到如图3.35所示的结果。 [X,Y] = meshgrid(-2:0.25:2, -1:0.2:1); Z = X.* exp-X.^2 - Y.^2); [U,V,W] = surfnorm(X,Y,Z); quiver3(X,Y,Z,U,V,W,0.5,'k'); hold on, surf(X,Y,Z); view(-35,45),axis ([-2 2 -1 1 -.6 .6])

图3.35 三维空间中函数梯度场的表示

3.7.4 离散数据绘图 1.stem 功能:绘制出离散序列数据。 格式: stem(Y) stem(X, Y) stem(…, 'fill') stem(…, LineSpec)

  说明:   stem(Y)可以按离散竖条形式显示出数据Y,x轴取其序号;当Y为矩阵时,stem绘制出Y每一行的元素。stem(X,Y)可以指定x轴的坐标X,其中X、Y为相同尺寸的向量或矩阵,当Y为矩阵时,X可以为向量(其长度为size(Y, 1),即Y的行数)。stem(…, ‘fill’)可以指定竖条末端圆圈的颜色;stem(…, LineSpec) 可以为绘图指定线型、符号和颜色。例如输入 >>t = linspace(-2*pi,2*pi,10); >>h = stem(t,cos(t),'fill', --'); >>set(get(h,'BaseLine'),'LineStyle',':') >>set(h,'MarkerFaceColor','red') >> title('The stems')

图3.36 离散数据显示

2.stem3 功能:在三维空间中绘制出离散序列数据。 格式: stem3(Z) stem3(X, Y, Z) stem3(…, 'fill') stem3(…, LineSpec)

  说明:   stem3函数与stem函数类似,只是stem3函数将离散竖条绘制在三维空间中。在stem3(Z)中,Z为二维矩阵,其下标构成(x,y)。其它说明参见stem函数。例如输入 X = linspace(0,1,10); >>Y = X./2; >>Z = sin(X) + cos(Y); >>stem3(X,Y,Z,'fill') >>title('The three-dimensional stem') >>view(-25,30),box off

图3.37 三维空间中离散数据的显示

  3.stairs   功能:绘制梯形图。   格式:   stairs(Y) stairs(X,Y)   stairs(…, LineSpec)   说明:   stairs函数与stem函数类似,只是stem函数绘制竖条图,而stairs函数用于绘制梯形图。参见stem函数。例如输入 x = linspace(-2*pi,2*pi,40); stairs(x,sin(x))

图3.38 梯形图

3.7.5 柱状图 1. hist 功能:绘制出柱状图。 格式: n = hist(Y) n = hist(Y, x) n = hist(Y, nbins) [n,xout] = hist(…)

  说明:   hist函数可在二维平面上绘制出柱状图,用来表示数据值的分布情况。   n = hist(Y)可以按均匀间隔的10类统计向量Y中的元素个数,当Y为m×p矩阵时,hist将按Y的列进行统计,从而得到10×p的结果矩阵。在n = hist(Y, nbins)中,nbins为标量,则hist函数可以将Y按nbins类统计。   n = hist(Y, x)

  [n, xout] = hist(…)还可以得到各类区域中心的位置xout,从而可以利用bar(xout, n)绘制出柱状图。 y = randn(2000,1); figure(1),hist(y,x) title('柱状图表示数据分布') axis([-3 3 -Inf Inf])

图3.39 数据分布的柱状图

  2.histc   功能:绘制出柱状图。   格式:   n = histc(x, edges)   n = histc(x, edges, dim)   说明:   函数histc与hist类似,只是利用edges指定区域的边缘,dim用于指定沿着指定维进行统计操作。

3.rose 功能:绘制角度的柱状图。 格式: rose(theta) rose(theta, x) rose(theta, nbins) h = rose(

  说明:   函数rose可以在极坐标系中绘制出角度的柱状图,用以表示角度的分布情况。   rose(theta)可以按20个均匀角度区域统计,并绘制出极坐标系中的柱状图,向量theta为以弧度表示的角度值。在rose(theta, nbins)中,nbins为标量,用于指定区域数。   rose(theta, x)可以利用向量x指定角度区域,length(x)表示区域数,x的值指定区域中心。   h = rose(…)命令在绘制出柱状图的同时,还给出了图形对象的句柄。   例如,输入 >> theta = 2*pi*rand(1,50); >>rose(theta)

图3.40 角度柱状图

3.7.6 多边形和曲面 1.cylinder 功能:绘制柱面图。 格式: [X, Y, Z] = cylinder [X, Y, Z] = cylinder(r) [X, Y, Z] = cylinder(r, n) cylinder(…)

  说明:   cylinder函数可在三维空间上画出柱面图。[X, Y, Z] = cylinder可以计算出半径为1的圆柱体的坐标(x,y,z),在圆周上均匀选取20个点;[X, Y, Z] = cylinder(r)可以指定轮廓曲线;[X, Y, Z] = cylinder(r, n)可以在圆周上均匀选取n个点。   当不带输出变量引用函数cylinder(…)时,可以直接绘制出柱面图。例如,执行下面程序可以得到如图3.41所示的简单柱面图。 cylinder, axis square h = findobj('Type','surface'); set(h,'CData',rand(size(get(h,'CData')))) title('简单柱面图')

利用cylinder(r) 还可以产生具有一定外形的柱体。例如输入 t = 0:pi/10:2*pi; figure(1) [X,Y,Z] = cylinder(2+cos(t)); surf(X,Y,Z),axis square title('复杂柱面图') 执行后得到如图3.42所示的复杂柱面图。

图3.41 简单柱面图

图3.42 复杂柱面图

2.sphere 功能:绘制球形图。 格式: sphere sphere(n) [X, Y, Z] = sphere(…)

  说明:   [X, Y, Z] =sphere函数可以计算出半径为1的球形的坐标(x, y, z),并在三维空间上画出这个球,球由20×20块面组成;sphere函数只绘制出单位半径的球;sphere(n)可以指定球由n×n块面组成。例如输入 >>sphere >>axis equal,title('球') 执行后得到如图3.43所示的球。

图3.43 三维空间上的球

3.ellipsoid 功能:绘制椭圆体。 格式: [x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr,n) [x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr) ellipsoid(axes_handle, …) ellipsoid(…)

  说明:   [x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr,n)可以产生3个(n+1)×(n+1)的矩阵,这样利用surf(x,y,z)就可以产生以(xc,yc,zc)为中心、以(xr,yr,zr)为半径的椭圆;在[x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr)中,默认n = 20;当没有输出变量引用函数ellipsoid(…)时,可以直接绘制出椭圆的曲面。

4.polyarea 功能:绘制出多边形。 格式: A = polyarea(X, Y) A = polyarea(X, Y, dim)

  说明:   A = polyarea(X, Y)可以绘制出由向量X、Y指定顶点的多边形区域;如果X、Y为矩阵,则其尺寸必须一致,多边形区域由X、Y相应的列构成;如果X、Y为多维阵列,则polyarea对第一个非单点维进行操作。A = polyarea(X,Y,dim)可以沿着指定维dim进行操作。例如输入 L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; xv = [xv ; xv(1)]; yv = [yv ; yv(1)]; A = polyarea(xv,yv); plot(xv,yv); title(['Area = ' num2str(A)]); axis image 执行后可以得到如图3.44所示的多边形图形。

图3.44 多边形图形

5.inpolygon 功能:删除多边形区域内部的点。 格式: IN = inpolygon(X,Y,xv,yv) [IN ON] = inpolygon(X,Y,xv,yv)

  说明:   IN = inpolygon(X,Y,xv,yv)可以得到一个与X、Y尺寸一致的矩阵IN,当点(X(p,q),Y(p,q))在区域内部时,IN(p,q)=1,否则为0。xv、yv用于指定多边形区域。[IN ON]=inpolygon(X,Y,xv,yv)还得到了一个与X、Y尺寸一致的矩阵ON,如果点(X(p,q),Y(p,q))在区域边界上,则ON(p,q)=1,否则为0。例如,下面的程序执行后可以得到如图3.45所示的判定结果。 L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; xv = [xv ; xv(1)]; yv = [yv ; yv(1)]; x = randn(250,1); y = randn(250,1); in = inpolygon(x,y,xv,yv); plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')

图3.45 区域判定结果

6.fill 功能:填充二维多边形。 格式: fill(X,Y,C) fill(X,Y,ColorSpec) fill(X1,Y1,C1,X2,Y2,C2,…)   说明:   fill函数可以绘制着了颜色的多边形。在fill(X,Y,C)中,X、Y用于指定多边形(参见polyarea函数),C用于指定颜色。当C为行向量时,length(C)=size(X,2)或者length(C)=size(Y,2);当C为列向量时,length(C)=size(X,1)或者length(C)=size(Y,1);在填充颜色时,如果需要,fill函数会连接多边形的起点和终点,以便形成一个封闭的多边形。

fill(X,Y,ColorSpec)可以指定填充的颜色;fill(X1,Y1,C1,X2, 例如,为绘制出红色的六边形,程序如下: t = (1/16:1/8:1)'*2*pi; x = sin(t); y = cos(t); fill(x,y,'r'),title('六边形'),axis square 执行后可以得到如图3.46所示的六边形。

图3.46 六边形

7.fill3 功能:填充三维多边形。 格式: fill3(X,Y,Z,C) fill3(X,Y,Z,ColorSpec) fill3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,…)

  说明:   与fill类似,函数fill3可以绘制出着了颜色的三维多边形区域,其说明可参见fill函数,不同的是fill3用X、Y、Z指定三维的多边形区域。例如执行下面程序,可以得到如图3.47所示的三维多边形区域图形。 X = [0 1 1 2;1 1 2 2;0 0 1 1]; Y = [1 1 1 1;1 0 1 0;0 0 0 0]; Z = [1 1 1 1;1 0 1 0;0 0 0 0]; C = [1.0000 0.7000 0.5000 0.3000; 1.0000 0.7000 0.5000 0.3000; 1.0000 0.7000 0.5000 0.3000]; fill3(X,Y,Z,C),title('着色的三维多边形区域')

图3.47 着色的三维多边形区域

8.ribbon 功能:绘制出带状图。 格式: ribbon(Y) ribbon(X,Y) ribbon(X,Y,width) ribbon(axes_handle, …) h = ribbon(…)

  说明:   ribbon(Y)可以根据Y的列绘制出三维带状图,其中X = 1:size(Y,1);ribbon(X,Y)可以指定X值,X、Y必须具有相同尺寸的向量或矩阵;ribbon(X,Y,width)可以指定带状宽度,缺省值为0.75。例如,为绘制出峰值函数peaks的带状图,可以输入 >> [x,y] = meshgrid(-3:.5:3, -3:.1:3); >>z = peaks(x,y); >>ribbon(y,z),colormap hsv 执行后可以得到如图3.48所示的带状图。

图3.48 峰值函数的带状图

9.slice 功能:绘制立体切片图。 格式: slice(V,sx,sy,sz) slice(X,Y,Z,V,sx,sy,sz) slice(V,XI,YI,ZI) slice(X,Y,Z,V,XI,YI,ZI) slice(…, 'method')

  说明:   函数slice可以为测定体积的数据绘制直交的切片图。slice(V,sx,sy,sz)可以绘制出体积V的切片图,sx、sy和sz用于指定相应坐标的方向,V为m×n×p的阵列。在slice(X,Y,Z,V,sx,sy,sz)中,X、Y、Z为单调的正交间距向量,用于指定绘图的x、y、z轴坐标,每一点的颜色由V值的三维内插算法确定。

  例如,为观察函数在-2≤x≤2、-2≤y≤2、-2≤z≤2上的体积情况,可以输入 >> [x,y,z] = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2); >>v = x.*exp(-x.^2-y.^2-z.^2); >>xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0]; >>slice(x,y,z,v,xslice,yslice,zslice)

图3.49 函数的切片图

10.waterfall 功能:绘制瀑布图。 格式: waterfall(Z) waterfall(X,Y,Z) waterfall(…, C)

  说明:   函数waterfall可以绘制出一个与meshz函数类似的网孔图,只是这里不绘出矩阵的列线,从而看起来具有瀑布的效果。   waterfall(Z)可以根据Z绘制出三维瀑布图,其中x = 1:size(Z,1),y = 1:size(Z,1),Z为曲面的高度,同时Z还确定了颜色;在waterfall(X,Y,Z)中,利用向量X、Y指定x轴和y轴的坐标;waterfall(…, C)可以指定颜色C。   例如,输入 >> [X,Y,Z] = peaks(30); >> waterfall(X,Y,Z) >> title('The waterfall graph')

图3.50 函数的瀑布图

11. mesh,meshc,meshz 功能:绘制网格曲线。 格式: mesh(X,Y,Z) mesh(Z) mesh(…,C) mesh(…, 'PropertyName',PropertyValue, …) meshc(…) meshz(…)

  说明:   函数mesh、meshc和meshz可以绘制出三维空间上的网格曲线。   在mesh(X,Y,Z)中,X、Y为x轴和y轴坐标,Z既为高度值又为颜色值,当X、Y为向量时,设n =length(X)和m=length(Y),则有[m,n] = size(Z),这时(X(i),Y(j),Z(i,j))定义了三维空间上的点;如果X、Y为矩阵,则X、Y、Z必须尺寸一致,(X(i,j),Y(i,j),Z(i,j))定义了三维空间上的点。   在mesh(Z)中,设[m,n] = size(Z),采用X = 1:n和Y = 1:m作为x轴和y轴的坐标,Z为高度和颜色值;mesh(…, C)可以利用矩阵C指定颜色;mesh(…, ‘PropertyName’, PropertyValue, …)可以设定图形对象的特性。  

  meshc(…)则可以在网格曲线的下面绘制出等高线;meshz(…)则在网格曲线的周围绘制出幕布。   例如输入 [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(X,Y,Z); axis([-3 3 -3 3 -10 5]) title('多峰函数的网格曲线') 执行后可得到如图3.51所示的网格曲线。如果利用meshz函数,则可以得到如图3.52所示的网格曲线。

图3.51 利用meshc得到的多峰函数的网格曲线

图3.52 利用meshz得到的多峰函数的网格曲线

12. meshgrid 功能:为三维绘图产生X、Y数据矩阵。 格式: [X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) [X,Y,Z] = meshgrid(x,y,z)

  说明:   meshgrid函数可产生x、y轴向的网格数据。   在[X, Y]=meshgrid(x, y)中,向量x、y分别指定x轴向和y轴向的数据点。当x为n维向量,y为m维向量时,X、Y均为m×n的矩阵,X(i, j)和Y(i, j)共同指定了平面上的一点;[X,Y] = meshgrid(x)等效于[X,Y] = meshgrid(x,x);[X,Y,Z] = meshgrid(x,y,z)可以产生三维阵列,它们指定了三维空间上的一个点。

13.surf,surfc 功能:绘制出三维空间中的曲面图。 格式: surf(Z) surf(X,Y,Z) surf(X,Y,Z,C) surf(…, 'PropertyName', PropertyValue) surfc(…)

  说明:   surf函数可以绘制出三维空间中的曲面,surfc(…)可以在曲面下绘制出等高线。其函数说明类似于mesh函数。 例如输入 [x,y]=meshgrid(-3:.125:3); z=peaks(x,y); c=ones(size(z)); surfc(x,y,z,c), grid on title('多峰函数的曲面')

图3.53 多峰函数的曲面

3.7.7 散布图 1.plotmatrix 功能:绘制出矩阵的散布图。 格式: plotmatrix(Y) plotmatrix(X,Y) plotmatrix(…, 'LineSpec') [H,AX,BigAx,P] = plotmatrix(…)

  说明:   plotmatrix(X,Y)可以绘制出矩阵(X,Y)的散布图,当X为p×m矩阵、Y为p×n矩阵时,plotmatrix可以将图形窗口分割成n×m块。plotmatrix(Y)等效于plotmatrix(Y,Y),但这时对位于对角线的块采用hist(Y(:,i))(柱状图)表示。   plotmatrix(…, 'LineSpec')可以指定绘制图形的符号,缺省值为 '.'(点)。   例如,输入 >> x = randn(50,3); y = x*[-1 2 1;2 0 1;1 -2 3;]'; >>plotmatrix(y,'*r')

图3.54 数据散布图

2.scatter 功能:绘制散布图。 格式: scatter(X, Y, S, C) scatter(X,Y) scatter(X, Y, S) scatter(…, markertype) scatter(…, 'filled') scatter(…, 'PropertyName', propertyvalue)

  说明:   scatter(X,Y,S,C)可以采用着色的圆圈(或某种标记)表示数据的位置,向量X、Y用于指定位置,S用于指定每个标记占用的区域,当S为向量时,必须与X、Y的长度一致,当S为标量时表示采用相同尺寸的标记。C用于确定标记的颜色,当C为向量时,必须与X、Y的长度一致,C也可以采用表示颜色的字符。

  scatter(X,Y)可以采用缺省的标记尺寸和颜色;scatter(X,Y,S)可以仅指定标记的尺寸,这时只采用一种颜色,因此有时也称为泡沫图;scatter(…,markertype)可以指定标记,缺省时为'o';scatter(…,'filled')可以对标记填充颜色;scatter(…,'PropertyName',propertyvalue)可以设定图形对象的特性。   例如,输入 >> load seamount >>scatter(x,y,5,z)

图3.55 散布图

3.scatter3 功能:绘制三维散布图。 格式: scatter3(X,Y,Z,S,C) scatter3(X,Y,Z) scatter3(X,Y,Z,S) scatter3(…, markertype) scatter3(…, 'filled')

3.8 图 形 函 数 表3.2 (二维)图形函数

3.8.1 基本图形和图形操作 1. plot 功能:绘制二维图形(曲线)。 格式: plot(y) 3.8.1 基本图形和图形操作   1. plot   功能:绘制二维图形(曲线)。   格式: plot(y) plot(x1, y1,…) plot(…,'PropertyName', PropertyValue,…) plot(x1, y1, LineSpec,…) h=plot(…)

  说明:   当y为实向量时,plot (y) 以y的序号作为x轴,以向量y的值作为y轴绘制出二维曲线;当y为复向量时,则plot (y)相当于plot(real(x), imag(y)),即y的实部为x轴,虚部为y轴。在后面几种格式中,虚部均被忽略。   plot(x1, y1, …)可按(x1, y1),(x2,y2), …成对绘制出曲线,而且在同一张图上以不同颜色显示。如果xn或yn之一为矩阵,则取矩阵的行或列与另一个向量构成数据对绘制出曲线。

  plot(x1,y1,LineSpec, …)可绘制出所有由三元组(xn,yn,LineSpec)指定的曲线,其中LineSpec用于指定线型、标记和线颜色。有关LineSpec的内容可参见下面的注释1。   plot(…, 'PropertyName', PropertyValue, …)可设置图形对象的特性。有关PropertyName和PropertyValue的内容参见axes函数,本节示例中可略见一斑。   h=plot(…)可在绘制出图形的同时,得到图形(曲线)的句柄向量,每条曲线对应于一个句柄值。

表3.3 LineSpec指定的线型、颜色和标记

  注释2:在利用plot函数绘制多条曲线时,plot自动循环采用颜色板中的各种颜色,而这种颜色板可用colormap函数设置,比如:   set(gca, 'LineStyleOrder', '-|-.|--') 表示循环使用实线、点画线和虚线。   例如,要绘制出[−π,π]之间的正弦和余弦曲线,利用MATLAB可使编程变得简单、方便,而且可得到各种图形。

MATLAB程序为 x=[-pi:pi/20:pi]; y1=sin(x); y2=cos(x); figure(1) %打开图形窗口 subplot(2,2,1),plot(x,y1) %在左上角绘制出正弦曲线 grid on,title('Sin(x)') %加上栅格和标题 subplot(2,2,2),plot(x,y2,'r:') %在右上角绘制出余弦曲线(点线) grid on,title('Cos(x)') subplot(2,2,3),plot(x,y1,'-',x,y2,'--') %在左下角绘制出正弦、余弦曲线 grid on,title('Sin(x) and Cos(x)') subplot(2,2,4),plot(x,y1,'-',x,y1,'ko') %在右下角绘制出正弦曲线 grid on,title('Sin(x)')

图3.56 正弦和余弦曲线

loglog函数类似于plot函数,惟一不同的是在对数坐标系中绘制图形,这样对于变化范围较大的曲线,容易显示出直观的图形。 功能:在对数坐标系中绘制图形。 格式: loglog(y) loglog(x1,y1,…)     loglog(…,'PropertyName', PropertyValue,…) loglog(x1,y1,LineSpec,…) h=loglog(…)   说明:   loglog函数类似于plot函数,惟一不同的是在对数坐标系中绘制图形,这样对于变化范围较大的曲线,容易显示出直观的图形。

3. semilogx,semilogy 功能:在半对数坐标系中绘制图形。 格式: semilogx(y) semilogy(x) semilogx(x1,y1,…) semilogy(x1,y1,…) semilogx(x1,y1,LineSpec…) semilogy(x1,y1,LineSpec…) semilogx(…,'PropertyName', PropertyValue,LineSpec…) semilogy(…,'PropertyName', PropertyValue,LineSpec…) h=semilogx(…) h=semilogy(…)

  4. ploar   功能:在极坐标系中绘制图形。   格式: polar(theta,rho) polar(theta,rho,LineSpec)   说明:   polar函数可在极坐标系中绘制出曲线,并可加上极坐标栅格线,其中theta表示极坐标角度,rho表示半径,LineSpec可指定曲线的线型、颜色和标记。  

图3.57 极坐标系中的曲线

例如输入 t=0:.01:2*pi; figure(1) polar(t,sin(2*t).*cos(2*t), '--r') 执行后得到如图3.57所示的极坐标曲线。

5. plotyy 功能:绘制左、右边都包含y轴的图形。 格式: plotyy(x1,y1,x2,y2) plotyy(x1,y1,x2,y2,'function1', 'function2') plotyy(x1,y1,x2,y2, 'function') [AX,H1,H2]=plotyy(…)   说明:   plotyy(x1, y1, x2, y2)可绘制出(x1, y1)的曲线,其y轴标记在左边,同时绘制出(x2, y2)曲线,其y轴标记在右边。

  plotyy(x1,y1,x2,y2, 'function')可利用有字符串function指定的函数来取代默认的plot函数,function可取plot(默认)、semilogx、semilogy、loglog、stem及用户自己编写的M函数文件,但这种函数文件必须具有下列调用格式:     h=function(x, y)   plotyy(x1,y1,x2,y2,'function1', 'function2')可指定采用不同的函数分别绘制(x1,y1),(x2,y2)曲线。   [AX,H1,H2]=plotyy(…)除了绘制出图形外,还可在AX中得到左、右两个轴的句柄,在H1和H2中得到这两个图形对象的句柄。

例如输入 t = 0:pi/20:2*pi; y1 = sin(t); y2 = 0.5*sin(t-1.5); figure(1) plotyy(t,y1,t,y2),grid on 执行后可得到如图3.58所示的曲线。

图3.58 双y轴曲线

6. figure 功能:建立图形(窗口)。 格式: figure figure(h) figure('PropertyName', PropertyValue,…) h=figure(…)

  说明:   figure可打开一个新的图形窗口,以供后续绘图命令输出图形。当然,当没有打开图形窗口时,直接使用绘图命令可自动打开一个图形窗口。如果已经打开了图形窗口,则绘图命令会在当前图形窗口中绘出图形。   figure('PropertyName', PropertyValue,…)在建立图形窗口的同时设置其特性,这一点可参见表3.4。

表3.4 图形特性(Figure Properties)

续表

7. close 功能:关闭图形窗口,即删除指定的图形。 格式: close close all close(h) close all hidden close name status=close(…)

  说明:   close可删除当前的图形(等效于close(gca));close(h)可删除句柄为h的图形,当h为向量或者矩阵时,则close将删除由h指定的所有图形;close name可删除由name(比如figure No 2)指定的图形;close all可删除所有的图形(不包括句柄隐含的图形);close all hidden可删除所有的图形(包括句柄隐含的图形)。 status=close(…)除了删除图形外,还可以得到删除操作的状态。 ●  1:删除成功。 ●  0:删除失败。

  8. clf   功能:清除当前图形窗口。   格式:     clf     clf reset   说明:   clf可从当前图形中删除所有的图形对象,但不删除这一图形窗口,这一点与close命令不同。   clf reset 可在当前图形中删除所有的图形对象,并将所有的图形特性(Position除外)复位到缺省值。

  9. gcf   功能:获得当前图形的句柄。   格式:     h=gcf   说明:   h=gcf可获得当前图形的句柄。当系统中尚未打开图形窗口时,h=gcf可建立一个图形窗口,并返回句柄h。但有时在不存在图形窗口时不希望建立图形,则可输入     h=get(0,'CurrentFigure') 这时会得到一个空阵列h。

10. refresh 功能:重画当前图形。 格式: refresh refresh(h)   说明:refresh可重新画出当前图形;refresh(h)可重新画出由h指定的图形。

11. plot3 功能:绘制出三维图形。 格式: plot3(X1,Y1,Z1,…) plot3(X1,Y1,Z1,LineSpec,…) plot3(…, 'PropertyName', PropertyValue, …)

  说明:   plot3(X1, Y1, Z1, …)可绘制出三维图形,其中X1、Y1、Z1用于指定曲线的坐标,它非常类似于二维绘图函数plot;lot3(X1,Y1,Z1,LineSpec,…)可以指定绘图的线型、标记及颜色;plot3(…,'PropertyName',PropertyValue,…)可以设定图形对象的特性。例如输入 t = 0:pi/50:8*pi; figure(1) plot3(sin(t),cos(t),t) grid on,axis square title('三维曲线')

图3.59 简单的三维曲线

  又如对于多峰函数,我们可在三维空间中画出三维曲线,MATLAB程序为 [x,y]=meshgrid(-3:.125:3); z=peaks(x,y); figure(1) plot3(x,y,z), grid on title('多峰函数的三维曲线') 执行后可得到如图3.60所示的三维曲线。

图3.60 多峰函数的三维曲线

3.8.2 图形注释   1. title   功能:给当前坐标系图形加上标题。   格式: title('string') title(…, 'PropertyName', PropertyValue,…) title(fname) h=title(…)

  说明:   每个坐标系的图形都可以有一个标题,它位于图形顶部的居中位置。   title('string')可将指定字符串用作为标题;title(fname)可将执行指定函数fname时产生的字符串作为标题。   title(…, 'PropertyName', PropertyValue, …)可为标题文本指定特性。h=title(…)还可以得到标题文本的控制句柄。例如,要将今日的日期作为图标题,则输入     title(date) 要在标题中包含变量值,则可输入     a=32.5;     title(['The temperature Of Peking is',num2str(a),'\circ'])

这时显示结果为   The temperature Of Peking is 32.5° 要在标题中包含变量值,并设定标题为黄颜色,则可输入   n=3   title(['Class',int2str(n),'Color','y']) 这时显示结果为(以黄色显示)   Class 3 标题中还可以采用各种字体(如黑体、斜体),如输入   title(\ity=e^{\omega\tau}') 则产生的标题为   y=eωτ

2. text 功能:在当前坐标系中建立文本对象。 格式: text(x, y, 'string') text(…, 'PropertyName', PropertyValue, …) text(x, y, z, 'string') h=text(…)   说明:   text是一个低级函数,它可将指定的字符串放在图形的指定位置。  text(x, y, 'string') 可在图形的(x, y)点上放置指定的字符串,(x, y)的单位由Unit特性决定。text(x, y, z, 'string')用在三维图形上。

text(…, 'PropertyName', PropertyValue, …)可在放置字符串的同时,指定文本的特性,详见表3   text(…, 'PropertyName', PropertyValue, …)可在放置字符串的同时,指定文本的特性,详见表3.5的文本特性;text(…, 'PropertyName', PropertyValue, …)用来指定文本的特性。h=text(…)还可以得到文本对象的句柄。例如,输入 figure(1) plot(0:pi/20:2*pi,sin(0:pi/20:2*pi)); text(pi,0,'\leftarrow sin(x)','Fontsize',18)

表3.5 文本特性(Text Properties)

续表

图3.61 利用text标注曲线

图3.62 top、cap、middle、baseline、bottom的相对位置

表3.6 Tex字符集 字符序列 符 号 \alpha α \upsilon υ \sim ~ \beta β \phi φ \leq ≤ 符 号 \alpha α \upsilon υ \sim ~ \beta β \phi φ \leq ≤ \gamma γ \chi χ \infty ∞ \delta δ \psi ψ \clubsuit ♣ \epsilon ε \omega ω \diamondsuit ♦ \zeta ζ \Gamma Γ \heartsuit ♥ \eta η \Delta Δ \spadesuit ♠ \theta θ \Theta Θ \leftrightarrow ↔ \vartheta ν \Lambda Λ \leftarrow ← \iota ι \Xi Ξ \uparrow ↑ \kappa κ \Pi Π \rightarrow → \lambda λ \Sigma Σ \downarrow ↓ \mu μ \Upsilon Υ \circ ° \nu \Phi Φ \pm ± \xi ξ \Psi Ψ \geq ≥ \pi π \Omega Ω \propto ∝ \rho ρ \forall \partial ∂ 字符序列 符 号 \alpha α \upsilon υ \sim ~ \beta β \phi φ \leq ≤ \gamma γ \chi χ \infty ∞ \delta δ \psi ψ \clubsuit ♣ \epsilon ε \omega ω \diamondsuit ♦ \zeta ζ \Gamma Γ \heartsuit ♥ \eta η \Delta Δ \spadesuit ♠ \theta θ \Theta Θ \leftrightarrow ↔ \vartheta ν \Lambda Λ \leftarrow ← \iota ι \Xi Ξ \uparrow ↑ \kappa κ \Pi Π \rightarrow → \lambda λ \Sigma Σ \downarrow ↓ \mu μ \Upsilon Υ \circ ° \nu \Phi Φ \pm ± \xi ξ \Psi Ψ \geq ≥ \pi π \Omega Ω \propto ∝ \rho ρ \forall \partial ∂ 字符序列 符 号 \alpha α \upsilon υ \sim ~ \beta β \phi φ \leq ≤ \gamma γ \chi χ \infty ∞ \delta δ \psi ψ \clubsuit ♣ \epsilon ε \omega ω \diamondsuit ♦ \zeta ζ \Gamma Γ \heartsuit ♥ \eta η \Delta Δ \spadesuit ♠ \theta θ \Theta Θ \leftrightarrow ↔ \vartheta ν \Lambda Λ \leftarrow ← \iota ι \Xi Ξ \uparrow ↑ \kappa κ \Pi Π \rightarrow → \lambda λ \Sigma Σ \downarrow ↓ \mu μ \Upsilon Υ \circ ° \nu \Phi Φ \pm ± \xi ξ \Psi Ψ \geq ≥ \pi π \Omega Ω \propto ∝ \rho ρ \forall \partial ∂ 表3.6 Tex字符集

  另外,字符串中还可以使用各种字体:   ●  \bf:黑体。   ●  \it:斜体。   ●  \sl:倾斜体。   ●  \rm:正体。   ●  \fontname{fonename}:指定使用的字体。   ●  \fontsize{fonesize}:指定使用的字体尺寸。   数学上、下标可以分别采用“^”、“_”实现。例如,a_2和b^{x+y}可分别产生a2和bx+y。一些特殊符号如“\{}_^”可通过加上前置符“\”实现。

  3. gtext   功能:利用鼠标在二维图形上放置文本。   格式: gtext('string') h=gtext('string')   说明:   gtext('string')可利用鼠标将指定字符串string放在图上的任意位置;h=gtext('string')还可以得到该文本图形对象的句柄。   字符串中可采用Tex字符集中的任意字符,也可以控制其正/斜体、上/下标等,详见text函数。

4.xlabel,ylabel,zlabel 功能:在图形中添加x、y、z轴的标记。 格式: xlabel('string') xlabel(…,'PropertyName',PropertyValue,…) xlabel(fname) h=xlabel(…) ylabel,zlabel有类似格式。

  说明:   在坐标系的图形中可给x、y、z轴加上标记。xlabel('string')可给x轴上加标记; xlabel(fname)可执行frame,并将输出的字符串用作x轴标记。   xlabel(…,'PropertyName',PropertyValue,…)除了添加x轴标记外,还可设定文本特性;h=xlabel(…)可得到标记文本的句柄。 利用ylabel和zlabel可给y、z轴加上标记。 有关可设定的文本特性参见text中的表3.5。

5.legend 功能:给每个坐标系加上插图说明。 格式: legend('string1','string2', …) legend(h, …) legend(strings) legend(…, pos) legend('off') h=legend(…)

  说明:   legend可在图形的指定位置(缺省时为右上角)给出插图说明,对图中的每一条曲线,legend会在指定文本字符串的边上给出线型、记号及颜色。插图说明框可利用鼠标移动。   legend('string1','string2', …)可利用string1,string2,…来说明当前坐标系中的曲线;在legend(strings)中,strings包含着多个字符串,因此它等效于legend(strings(1,:),strings(2,:),…);legend('off')可从当前坐标系中删除插图说明。   legend(h, …)可对由h指定的坐标系进行插图说明的各种操作。

legend(…, pos)可利用pos参数指定插图说明的位置: ●  pos=[x,y]:明确指定插图说明框左下角的位置。 h=legend(…)还可以得到插图说明的句柄。 注意,legend中的字符串也可使用Tex字符集,详见text函数。

3.8.3 坐标系控制   1.subplot   功能:建立和控制多个坐标系。   格式: subplot(m,n,p) subplot('Position', [left,bottom,width,height]) subplot(h) h=subplot(…)

  说明:   subplot可将图形窗口分成矩形窗格,并按行编号,每个窗格上可建立一个坐标系,后续的绘图命令会在当前窗格上绘制图形。   subplot(m,n,p)可将图形窗口分割成m×n个窗格,并将第p个窗格置成当前窗格。   subplot(h)可使句柄为h的坐标系变成当前坐标系。   subplot('Position',[left,bottom,width,height])可在指定位置建立指定尺寸的坐标系。   h=subplot(…)还可以得到新坐标系的句柄。

  subplot还有一种更简捷的格式:   subplot mnp   它等效于subplot(m,n,p)。但subplot 111与subplot(1, 1, 1)不同,它只是一种早期版本的形式,而subplot(1,1,1)表示删去所有的坐标对象。   例如,subplot 221可将图形窗口分成四个窗格,每个窗格分别可用subplot 221、subplot222、subplot 223、subplot 224来表示,如图3.63所示。

图3.63 2×2窗格的图形窗口

2. hold 功能:在图形窗口中保持当前图形。 格式: hold on hold off hold

  说明:   hold函数可决定所绘制的图形是添加到图形上,还是取代已绘制的图形。   hold on表示保持当前的图形,即新绘制的图形添加到图形上,从而实现一幅图中绘制多条曲线。hold off表示关闭这种保持特性,因此每次绘图时会自动清除以前已绘制的图形。hold命令可在这两种状态(on,off)之间切换。   hold的状态可由ishold函数来测定。

3.grid 功能:给图形加上栅格线。 格式: grid on grid off grid 说明:   grid on表示给当前坐标系加上栅格线;grid off表示从当前坐标系中删去栅格线;grid命令可在这两种状态(on,off)之间切换。

4.axes 功能:建立坐标系图形对象。 格式: axes axes(h) axes('PropertyName',PropertyValue,…) h=axes(…)

  说明:   axes是建立坐标系图形对象的低级函数,因此一般不直接使用。   axes可在当前图形窗口中建立坐标系图形对象,其特性取其缺省值;xes('PropenyName',PropenyValue,…)可采用指定的特性值,axes(h)可使已存在的坐标系h变成当前坐标系。h=axes(…)还可以得到所建坐标系的句柄。   坐标系的特性可用来控制绘图外形和绘图对象,利用这些特性可使绘制图形更加灵活。这里简要地列出坐标系特性,如表3.7所示,详细信息可参见axes函数的在线帮助。

表3.7 坐标系特性(Axes Properties )

5.axis 功能:控制坐标轴刻度。 格式: axis([xmin xmax ymin ymax]) axis auto axis([xmin xmax ymin ymax zmin zmax]) axis manual v=axis

  说明:   axis函数有多种格式,我们这里仅介绍常用的几种。axis函数的功能通常可通过设置坐标系特性来获得。   axis([xmin xmax ymin ymax])可为x轴和y轴设置一个极限范围;axis([xmin xmax ymin ymax zmin zmax]可同时设置x、y、z轴的范围;v=axis可得到当前坐标系的轴范围。   axis auto可将当前坐标系的轴范围设置为自动方式,即由绘图数据来确定轴范围,这种格式可指定特定的轴,如axis'auto x'可将x轴设置为自动方式,axis'auto yz'可将y和z轴设置为自动方式。

6.box 功能:控制坐标系边框。 格式: box on box off box 说明:   box on 可在当前坐标系中显示一个边框,这是缺省情况。box off可去掉边框,这时图中只含坐标轴;box命令可在这两种状态之间切换。

3.8.4 其它重要函数 1.get 功能:获得图形对象的特性。 格式: get(h) 3.8.4 其它重要函数 1.get 功能:获得图形对象的特性。 格式: get(h) get(h,'PropertyName') a=get(O,'FactoryObjectTypePropertyName') P=get(H, pn) a=get(h,'Default') a=get(0, 'Factory') a=get(h,'DefaultObjectTypePropertyName')

  说明:   get(h)可获得由h指定的图形对象的所有特性及其当前值;get(h,'PropertyName')只得到指定的特性值;在P=get(H, pn)中,H为m维向量,表示多个图形对象,pn为n元阵列,表示多个特性名称,P为m×n矩阵,则P中得到了各个图形对象的特性值。   a=get(0,'Factory')可得到用户可设置特性的出厂值(生产厂家指定值),a为一种结构,其域名为对象特性名,域值为其特性值。当不指定输出变量时,则MATLAB直接将结果显示在屏幕上;a=get(O,'FactoryObjectTypePropertyName')可得到指定对象类型的指定特性的出厂值,例如:

a=get(O,'FactoryFigureColor') 可得到图形颜色的出厂值。 a=get(h,'Default')可得到指定对象h的当前缺省值; a=get(h,'DefaultObject-TypePropertyName')可得到指定对象类型的指定特性的缺省值,例如: A=get(h,'DefaultFigureColor') 可得到图形颜色的缺省值。

2.set 功能:设置图形对象的特性。 格式: set(H,'PropertyName', PropertyValue, …) set(H,pn,pv, …) set(H,a) set(H,pn,P)

  说明:   set(H,'PropertyName, PropertyValue', …)可对由H指示的对象设置指定的特性,H可以是向量,这时可设置多个对象的特性;在set(H,a)中,a为结构阵列,这样可对多个对象设置多个特性;在set(H,pn,pv, …)中,pn为n元阵列,用来指定多个特性,pv也为n元阵列,用来指定相应的特性值;在set(H,pn,P)中,P为m×n元的单元阵列,用于指定多个对象的多个特性。

  set函数还有一些其它格式,这里不再赘述,详见set函数的在线帮助。   例如,要将当前坐标系的颜色设置成蓝色,则可输入   set(gca, 'Color', 'b')   要将图中所有的线颜色改成黑色,则输入   set(findobj('Type', 'line'), 'Color', 'k')

  3.rotate   功能:沿着指定方向旋转对象。   格式:   rotate(h,direction,alpha)   rotate(…,origin)   说明:   rotate可在三维空间上按右手准则旋转图形对象。rotate(h,direction,alpha)可将指定对象h旋转alpha度,direction为二元或三元向量,它与原点相连构成旋转轴。如在三维空间上,由P点和原点构成旋转轴,旋转方向由右手准则确定,如图3.64所示。   

图3.64 图形对象旋转轴和旋转方向

  rotate(…, origin)可用三元向量origin指定旋转原点,缺省时旋转原点处于绘图框的中心。 例如,对于多峰函数peaks,我们可通过旋转得到不同的视图,输入 >> zdir=[0 0 1]; center=[10 10 0]; >> figure(1); >> subplot(2,2,1), surf(peaks); %原图 >> subplot(2,2,2), h2=surf(peaks); %中心在原点,沿z轴旋转90° >> rotate(h2,zdir,90) >> subplot(2,2,3), h3=surf(peaks); %中心在原点,沿z轴旋转−90° >> rotate(h3,zdir, -90) >> subplot(2,2,4), h4=surf(peaks); %中心在(10,10,0),沿z轴旋转90° >> rotate(h4,zdir,90,center)

图3.65 多峰曲面的旋转

4.colormap 功能:设置和获取当前图形的颜色板。 格式: colormap(map) colormap('default') cmap=colormap

  说明:   颜色板是一个m×3的矩阵,其值在0.0~1.0之间,分别表示红、绿、蓝三种颜色,颜色板的每一行定义了一种颜色。   colormap(map)可将颜色板设置成map,当map中含有[0.0,1.0]之外的值时,MATLAB会产生一个出错信息:colormap('default')可将颜色板设置成缺省的颜色板;cmap=colormap可得到当前使用的颜色板矩阵。   注释1:指定颜色板。MATLAB提供了许多颜色板函数,每一个函数可产生多种颜色,例如:   colormap(hsv(128))   可产生包含128种颜色的hsv颜色板。当不指定其尺寸时,则MATLAB会产生与当前颜色板同等数量的颜色。

  注释2:MATLAB系统提供了许多颜色板,它们是:   ●  autumn:从红到橙到黄之间平滑变化。   ●  bone:灰度颜色板,它适用于显示图像。   ●  colorcube:它包含许多在RGB颜色空间中规则分布的颜色,并且提供了更多的灰度、纯红、纯绿和纯蓝颜色。   ●  cool:包含从暗青色到暗洋红色之间的颜色,它从青色到洋红色之间平滑变化。   ●  copper:从黑色到黄铜色之间平滑变化。

●  flag:由红、白、蓝和黑四种颜色构成。 ●  gray:产生线性的灰度颜色板。 ●  hot:从黑色到暗红、洋红、黄色、白色平滑变化。 ●  hsv:颜色从红、黄、绿、青、蓝、洋红,再回到红,循环变化。 ●  jet:颜色从蓝、红、青、黄到洋红变化。 ●  line:产生由坐标系的ColorOrder特性和暗灰色指定的颜色板。 ●  pink:包含粉红色彩色蜡笔的阴影,它适用于黑白照片。 ●  prism:重复六种颜色:红、洋红、黄、绿、蓝和紫罗蓝。 ●  spring:由紫红和黄色构成的颜色。 ●  summer:由绿色和黄色构成的颜色。 ●  white:全白的单色颜色板。 ●  winter

  为了进一步了解各种颜色板的颜色,可输入 cmap=colormap; L=length(map); x=1:L;y=x'*ones(size(x)); bar(x(1:2), y(1:2, :))   这时以条形图给出当前颜色板的颜色,再输入    colormap(hsv)   可显示出hsv颜色板中的颜色,输入    colormap(gray)   可显示出gray中的各级灰度。其它颜色板也可用类似方法得到。

习 题 1.画出对数和指数函数曲线,并分别加上标题、轴标记和曲线说明(这里可采用多种方法来标注曲线)。 习 题   1.画出对数和指数函数曲线,并分别加上标题、轴标记和曲线说明(这里可采用多种方法来标注曲线)。   2.将图形窗口分成两格,分别绘制正割和余割函数曲线,并加上适当的标注。   3.设有函数y=ex+5+x3,在半对数坐标系中绘制出曲线(x∈[1,10])。   4.绘制出多峰函数peaks和三角函数的多条曲线。

  5.将图形窗口分成两个窗格分别绘制出以下函数在[-3,3]区间上的曲线: yl=2x+5 y2=x2-3x+1   并利用axis调整轴刻度,使它们具有相同的缩放尺寸。   6.按图3.19的方式显示出autumn、bone、cool、hot、hsv、gray、flag、line等颜色板的颜色条形图。   7.有一位研究生,一年中平均每月的费用为生活费190元、资料费33元、电话费45元、购买衣服42元以及其它费用45元。请以饼图表示出他每月的消费比例,并分离出表示资料费用的切片。请给图中每一块加以标注。

8.画出下列函数的三维曲线和网格曲线: z= (x-2)2+(y-1.2)2 9.画出下列函数的曲面及等高线图: z=x2+y2+sin(xy) 10.画出各种大小和形状的球、柱体。