曲线绘制一般方法
1.多个图像绘制
1.1指定图形窗口
figure(n); % 产生新图形窗口
1.2 同一个窗口多个子窗
subplot(m,n,k);
% 使m*n幅子图的第k幅成为当前图
x = 0:0.1:2*pi;
subplot(2,2,1);
plot(x,sin(x));
subplot(2,2,2);
plot(x,cos(x));
subplot(2,2,3);
plot(x,tan(x));
subplot(224);
plot(x,sin(3*x));
%两两一配对
1.3同一窗口多次叠绘
hold on % 使用当前坐标系和图形保留
hold off % 使用当前坐标系,图形不保留
hold % 在上面两个命令中切换
1.4 双纵坐标轴
plotyy(x1,y1,x2,y2);
figure(2);
plotyy(x,sin(x),x,cos(x));
2.曲线的线形,颜色和数据点形
plot(x,y,s) % x为横坐标,y为纵坐标,s为字符串参数
x = 0:0.1:2*pi;
plot(x,sin(x),'b:o');
更多参数查看书120
3. 设置坐标轴和文字标注
3.1坐标轴的控制
在这里介绍几个,更多请参看书121
axis off % 取消轴背景
axis on % 使用轴背景
axis([xmin,xmax,ymin,ymax]); % 设定坐标范围
3.2 设置分格线
grid on % 显示分格线
grid off % 关闭分格线
grid % 以上两个命令切换
x = 0:0.1:2*pi;
plot(x,sin(x),'b:o');
grid on; % 这个命令要放在绘图之后
3.3文字标注
3.3.1添加图名
title(s) % 图名
3.3.2添加坐标名
xlable(s) % 横坐标
ylable(s) % 纵坐标
3.3.3图例
legend(s,pos) % 在指定位置建立图例
legend off % 擦出图例
% 如果有多个注释则可以用 ‘s1’, ‘s2’, ‘s3’….的方式;参数pos是图的位置,具体如下:
pos取值 | 0 | 1 | 2 | 3 | 4 | -1 |
---|---|---|---|---|---|---|
图例位置 | 自动取最佳位置 | 右上角 | 左上角 | 左下角 | 右下角 | 图右侧 |
3.3.4添加文字注释
text(xt,yt,s); % 在图形(xt,yt)处书写文字注释
x = 0:0.1:2*pi;
plot(x,sin(x),'b:o');
grid on;
title('s-sin(x)'); % 添加标题
xlabel('x'); % 添加横坐标
ylabel('sin(x)'); % 添加纵坐标
legend('x'); % 添加图例
text(pi,sin(pi),'x=\pi'); % 在指定位置加上文字注释
3.4 坐标刻度
使用xtick,ytick划分坐标刻度
使用xticklabel,yticklabel 标注坐标刻度
x = 0:0.1:2*pi;
plot(x,sin(x),'b:o');
axis([0,2*pi,-2,2]);
set(gca,'xtick',0:pi/2:2*pi);
set(gca,'xticklabel',{'0','pi/2','pi','pi3/2','2pi'});
grid on;
3.4交互式图形命令
[x,y]=ginput(n) % 使用鼠标从图形上获取n个点的坐标(x,y)
gtext(’s‘); % 使用鼠标把字符串放置在图形上
x = 0:0.1:2*pi;
plot(x,sin(x),'b:o');
[m,n]=ginput(2); % 取两个坐标
m;
n;
gtext('pi/2'); % 写上pi/2
4. 特殊图形绘制
4.1条形图
函数 | 功能 | 函数 | 功能 |
---|---|---|---|
bar | 垂直条形图 | bar3 | 垂直三维条形图 |
barh | 水平条形图 | bar3h | 水平三维条形图 |
bar(x,y,width,’参数’); % 画条形图
bar3(y,z,width,’参数‘); % 画三维条形图
x = 3:6;
y = [ 5.3 13.0 0.4
5.1 11.8 -1.7
3.7 8.1 0.6
1.5 7.7 -4.5];
bar(x,y);
figure(2);
bar3(x,y);
4.2面积图和实心图
4.2.1面积图
面积图:在曲线和坐标轴之间填充颜色
area(y); % 画面积图
area(x,y);
4.2.2实心图
实心图:将数据的起点和终点连成多边形
fill(x,y,c);
c 为实心的颜色
x = 1:3;
y = [ 1 3 9
13 7 12
20 15 16];
area(x,y);
title('面积图');
figure(2);
fill(x,y,'r*');
title('实心图');
4.3 直方图
hist(y,m); % 统计每段元素个数并画出直方图
hist(y,x);
m为分段个数;x是向量,用来指定每个所分数段的中间值;y可以是向量也可以是矩阵
y1 = randn(10,3); % 产生10*2的正态分布的随机数矩阵
x1 = -2:0.5:2;
figure(3);
hist(y1,x1);
y1的值:
0.671497133608081 0.888395631757642 -0.102242446085491
-1.20748692268504 -1.14707010696915 -0.241447041607358
0.717238651328839 -1.06887045816803 0.319206739165502
1.63023528916473 -0.809498694424876 0.312858596637428
0.488893770311789 -2.94428416199490 -0.864879917324457
1.03469300991786 1.43838029281510 -0.0300512961962686
0.726885133383238 0.325190539456198 -0.164879019209038
-0.303440924786016 -0.754928319169703 0.627707287528727
0.293871467096658 1.37029854009523 1.09326566903948
-0.787282803758638 -1.71151641885370 1.10927329761440
图片解析:产生10行三列数据,按照在每一列计数。
例如:图中统计数据在(-1.5~-0.5),第一列:2个;第二列:4个;第三列:1个;这里数据有效数字有点多,自己慢慢找找;
4.4 饼形图
pie(x, explode,’label’); % 画出二维饼图
pie3(x, explode,’label’); % 画出三维饼图
x为向量;explode是和x同一长度的向量,决定是否从并图中分离出一部分;’label’用来表示图形字符串数组;
y2 = [100,300,200,500];
explode = [0 1 0 1];
figure(4);
pie(y2,explode,{'第一季度','第二季度','第三季度','第四季度'});
4.5 离散数据图
stem | stem3 | stairs | scatter |
---|---|---|---|
绘制二维火柴杆图 | 绘制三维火柴杆图 | 阶梯图 | 点图 |
用法都和plot()相似
x3 =0:0.1:2*pi;
y3 = sin(x3).*exp(-2*x3);
figure(5);
subplot(3,1,1);
stem(x3,y3,'filled');
subplot(3,1,2);
stairs(x3,y3);
subplot(313);
scatter(x3,y3);
要执行按元素相乘,请使用 ‘.*’;filled用来填充点标记
4.6 对数坐标和极坐标图
semilogx(x,y,’参数’); % x为对数坐标的曲线
semilogy(x,y,’参数’); % y为对数坐标的曲线
loglog(x,y,’参数’); % 绘制x,y都为对数的曲线
4.7 等高线图
polar(theta,radius,’参数’); % 绘制极坐标图
the = -pi:0.01:pi;
r = 2*sin(5*the).^2;
figure(6);
polar(the,r);
4.8 复向量图
4.8.1compass命令
compass绘制起点是原点的复向量图
compass(u,v); % 画罗盘图
compass(z);
u,v分别代表实部和虚部
4.8.2feather
起点为(k,0)的复向量图,又称羽毛图
feather(u,v); % 画出羽毛图
feather(z);
th = 0:0.2:2*pi;
z = sin(th).*exp(j*th);
figure(7);
compass(z);
figure(8);
feather(z);