一、图形控制
plot(x, y, 'CLM')
C:曲线的颜色(Colors) L:曲线的格式(Line Styles) M:曲线的线标(Markers)
x = 0:0.5:4*pi; % x 向量的起始与结束元素为 0 及 4*pi, 0.5为各元素相差值 y = sin(x); plot(x,y,'k:diamond') % 其中k代表黑色,:代表点线,而diamond则指定菱形为曲线的线标
plot 指令的曲线颜色
Plot指令的曲线颜色字串 曲线颜色 b 蓝色(Blue) c 青蓝色(Cyan) g 绿色(Green) k 黑色(Black) m 紫黑色(Magenta) r 红色(Red) w 白色 y 黃色(Yellow)
plot 指令的曲线样式
Plot指令的曲线样式字串 曲线样式 - 实线(默认值) -- 虚线 : 点线 -. 点虚线
plot 指令的曲线线标
Plot指令的曲线线标字串 曲线线标 O 圆形 + 加号 X 叉号 * 星号 . 点号 ^ 朝上三角形 V 朝下三角形 > 朝右三角形 < 朝左三角形 square 方形 diamond 菱形 pentagram 五角星形 hexagram 六角星形 None 无符号(默认值)
二、图轴控制
plot 指令会根据坐标点自动决定坐标轴范围,也可以使用axis指令指定坐标轴范围 使用语法: axis([xmin, xmax, ymin, ymax]) xmin, xmax:指定 x 轴的最小和最大值 ymin, ymax:指定 y 轴的最小和最大值
x = 0:0.1:4*pi; y = sin(x); plot(x, y); axis([-inf, inf, 0, 1]); % 画出正弦波 y 轴介于 0 和 1 的部份
指定坐标轴上的网格点(Ticks) x = 0:0.1:4*pi; plot(x, sin(x)+sin(3*x)) set(gca, 'ytick', [-1 -0.3 0.1 1]); % 在 y 轴加上网格点 grid on % 加上网格
gca:get current axis的简称,传回目前使用中的坐标轴
将网格点的数字改为文字 x = 0:0.1:4*pi; plot(x, sin(x)+sin(3*x)) set(gca, 'ytick', [-1 -0.3 0.1 1]); % 改变网格点 set(gca, 'yticklabel', {'极小', '临界值', '崩溃值', '极大'}); % 改变网格点的文字 grid on
在一个视窗中同时画出四个图 x = 0:0.1:4*pi; subplot(2, 2, 1); plot(x, sin(x)); % 左上角图形 subplot(2, 2, 2); plot(x, cos(x)); % 右上角图形 subplot(2, 2, 3); plot(x, sin(x).*exp(-x/5)); % 左下角图形 subplot(2, 2, 4); plot(x, x.^2); % 右下角图形
长宽比(Aspect Ratio) 一般图轴长宽比是视窗的长宽比, 可在axis指令后加不同的字串来修改 t = 0:0.1:2*pi; x = 3*cos(t); y = sin(t); subplot(2, 2, 1); plot(x, y); axis normal %使用默认长宽比(等于图形长宽比) subplot(2, 2, 2); plot(x, y); axis square %长宽比例为 1 subplot(2, 2, 3); plot(x, y); axis equal %长宽比例不变,但两轴刻度一致 subplot(2, 2, 4); plot(x, y); axis equal tight %两轴刻度比例一致,且图轴贴紧图形
三、grid 和 box 指令 grid on 画出网格 grid off 取消网格 box on 画出图轴的外围长方形 box off 取消图轴的外围长方形
给图形和图轴加说明文字
指令 说明 title 图形的标题 xlabel x 轴的说明 ylabel y 轴的说明 zlabel z 轴的说明 legend 多条曲线的说明 text 在图形中加入文字 gtext 使用滑鼠决定文字的位置
subplot(1,1,1); x = 0:0.1:2*pi; y1 = sin(x); y2 = exp(-x); plot(x, y1, '--*', x, y2, ':o'); xlabel('t = 0 to 2\pi'); ylabel('values of sin(t) and e^{-x}') title('Function Plots of sin(t) and e^{-x}'); legend('sin(t)','e^{-x}');
「\」为特殊符号,产生上标、下标、希腊字母、数学符号等
text指令 text(x, y, string) x、y :文字的起始座标位置 string :代表此文字 x = 0:0.1:2*pi; plot(x, sin(x), x, cos(x)); text(pi/4, sin(pi/4),'\leftarrow sin(\pi/4) = 0.707'); text(5*pi/4, cos(5*pi/4),'cos(5\pi/4) = -0.707\rightarrow', 'HorizontalAlignment', 'right');
「HorizontalAlignment」及「right」将文字向右水平靠齐
四、各种二维绘图指令
指令 说明 errorbar 在曲线加上误差范围 fplot、ezplot 较精确的函数图形 polar、ezpolar 极座标图形 hist 直角座标直方图(累计图) rose 极座标直方图(累计图) compass 罗盘图 feather 羽毛图 area 面积图 stairs 阶梯图
已知资料的误差范围,用 errorbar 表示。以 y 坐标高度 20% 作为资料的误差范围 x = linspace(0,2*pi,30); % 在 0 到 2 之间,等分取 30 个点 y = sin(x); e = y*0.2; errorbar(x,y,e) % 图形上加上误差范围 e
fplot 指令:对剧烈变化处进行较密集的取样 fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围
theta = linspace(0, 2*pi); r = cos(4*theta); polar(theta, r); % 进行极坐标绘图
将 10000 个由 randn 产生的正规分布之随机数分成 25 堆 x = randn(10000, 1); % 产生 10000 个正规分布随机数 hist(x, 25); % 绘出直方图,显示 x 资料的分布情况和统计特性,数字 25 代表资料依大小分堆的堆数,即是指方图内长条的个数 set(findobj(gca, 'type', 'patch'), 'edgecolor', 'w');% 将长条图的边缘设定成白色
试写一函数 regpoly(n),其功能是画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。
regpoly.m文件:
function regpoly(n) vertices=[1]; for i=1:n step=2*pi/n; vertices=[vertices, exp(i*step*sqrt(-1))]; end plot(vertices, '-o'); axis image % 画外接圆 hold on theta=linspace(0, 2*pi); plot(cos(theta), sin(theta), '-r'); hold off axis image
一条参数式的曲线可由下列方程式表示: x = sin(t), y = 1 - cos(t) + t/10 当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本 plotParam.m,画出此曲线在 XY 平面的轨迹。 t = linspace(0, 4*pi); x = sin(t); y = 1-cos(t)+t/10; plot(x, y, '-o');
|