二维图形
plot函数的基本调用格式为:
plot(x,y)
例:在0≤x≤2区间内,绘制曲线
y=2e-0.5xcos(4πx)
程序如下:
x=0:pi/100:2*pi;
y=2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y)
- plot函数最简单的调用格式是只包含一个输入参数:
plot(y)
当y是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线。
- 包含多个输入参数
plot(x1, y1, x2, y2, …)
- 当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线。
- 当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
- 如果需要绘制出具有不同纵坐标标度的两个图形
可以使用plotyy绘图函数,其格式为:
plotyy(x1,y1,x2,y2)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。
y1=0.2e-0.5xcos(4πx) ;
y2=2e-0.5xcos(πx)。
程序如下:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
plotyy(x,y1,x,y2);
图形保持
- hold on
把当前图形保持在当前绘图窗口中不变,同时允许在当前绘图窗口中继续绘制新的图形 - hold off
使新的图形覆盖旧的图形
绘制向量图
可以使用 plot 函数在一张图上绘制两个相同长度的向量。plot(x,y)
创建一个绘图,其中 sample 位于 x 轴,mass1 位于 y 轴。 plot(sample,mass1)
plot(x,y,"r--o")
以上命令将会绘制一条红色 (r) 虚线 (--),并使用圆圈 (o) 作为标记。
要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:
plot(x1, y1,option1,x2, y2,option2,…)
- 注意附加参数加引号;
- 如果指定标记而不是线型,则将仅绘制标记。
多个线条
每个绘图命令都创建了一个单独的绘图。要在一张图上先后绘制两条线,请使用 hold on 命令保留之前的绘图,然后添加另一条线。
输入 hold on 命令。
然后绘制 mass1(y 轴)对 sample(x 轴)的图,并带有黑色 (k) 方形 (s) 标记,不带线条。
hold on
plot(sample,mass1,"ks")
注释
- 为现有绘图添加标题 “Sample Mass”。
title("Sample Mass")
- 使用 ylabel 函数添加标签 “Mass (g)”。
ylabel("Mass (g)")
- 可以使用 legend 函数为绘图添加图例。 legend(“a”,“b”,“c”)
创建一个图例,其中依次包含标签 “Exp A” 和 “Exp B”。
legend("Exp A","Exp B")
- text(x, y, S):在图中(x,y)位置标注内容为S的注释
函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。
例如,
text(0.3,0.5,‘sin({\omega}t+{\beta})’)
将得到标注效果sin(ωt+β)。
坐标控制
axis([xmin xmax ymin ymax zmin zmax]):设定坐标范围
axis auto:默认设置
axis normal: 默认矩形坐标系
axis square:产生正方形坐标系(默认为矩形)
axis equal:纵、横坐标轴采用等长刻度
axis tight:把数据范围直接设为坐标范围
axis off:取消坐标轴
axis on:显示坐标轴
- grid on/off
命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换 - box on/off
命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。 - subplot(m,n,p)
将图形窗口分成m行n列,p表示子图编号,编号按行优先编号。
t=linspace(0, 2*pi, 25); x=1.5*cos(t); y=3.5*sin(t);
subplot(2,3,1), plot(x,y), grid on, title ('Grid on')
subplot(2,3,2), plot(x,y), axis off, title('axis off')
subplot(2,3,3), plot(x,y), box off, title('Box off')
subplot(2,3,4), plot(x,y,‘r^’), title('红色 上三角')
subplot(2,3,5), plot(x,y,'g-'), title('Green solid')
subplot(2,3,6), plot(x,y,‘c*’), title('青色 八线')
特殊图形
- polar函数用来绘制极坐标图
polar(theta,r,option)
其中theta为极坐标极角,r为极坐标矢径,选项的内容与plot函数相似。
- hist函数绘制直方图
n = hist(Y) 绘制Y的直方图
n = hist(Y, nbins) 指定分格的数目(默认为10)
x=randn(500,1);
% 正态分布的随机数
% 500行1列
subplot(2,1,1),
hist(x);
subplot(2,1,2),
hist(x,100);
3. pie 饼图
pie(x)
pie(x, explode)
例题
- 例:在同一坐标内,分别用不同线型和颜色绘制曲线
y1=0.2e-0.5xcos(4πx) ;
y2=2e-0.5xcos(πx)。
标记两曲线交叉点。
x=linspace(0,2*pi,1000);
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
k=find(abs(y1-y2)<1e-2);
%查找y1与y2相等点(近似相等)的下标
x1=x(k); %取y1与y2相等点的x坐标
y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);
%求y1与y2值相等点的y坐标
plot(x,y1,x,y2,'k:',x1,y3,'bp');
- 在0≤x≤2区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注
x=0:pi/100:2*pi;
y1=2*exp(-0.5*x);
y2=cos(4*pi*x);
plot(x,y1,x,y2)
title('x from 0 to 2{\pi}'); %加图形标题
xlabel('Variable X'); %加X轴说明
ylabel('Variable Y'); %加Y轴说明
text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置添加图形说明
text(2.5,1.1,'曲线y2=cos(4{\pi}x)');
legend('y1', 'y2') %加图例
- 在同一坐标中,可以绘制3个同心圆,并加坐标控制。
程序如下:
t=0:0.01:2*pi;
x=exp(i*t);
y=[x;2*x;3*x]';
plot(y)
grid on; % 加网格线
box on; % 加坐标边框
axis equal % 坐标轴采用等刻度