MATLAB绘图
基本窗口指令
figure;%打开图形窗口
hold on;%在已经存在的图形上再继续添加新的图形
title(’图形名称’) ;
xlabel(’x轴说明’);
ylabel(’y轴说明’);
text(x,y,’图形说明’);
legend(’图例1’,’图例2’,…);
axis([xmin xmax ymin ymax ]);%坐标修改
subplot(m,n,p);%表示将一个figure分割成m*n个的小分区,在第p个区域绘图
生成一维数据序列
① 起始点:步长:终点 (eg:x=0 : pi/100 : 2pi;生成100个从0到2pi递增的点)
②linspace(x1,x2,N) 其中x1、x2、N分别为起始值、终止值、元素个数,N默认点数为100
③v=rand(1,100) 生成1行100列的在0到1内随机均匀分布的数据
④v=randn(1,100) 产生均值为0,方差σ^2 = 1,标准差σ = 1的标准正态分布的1100的随机数组
⑤v=normrnd(2,2,1,100) 产生均值为2,方差σ^2 = 2的正态分布的1*100的随机数组
⑥[X,Y] = meshgrid(a,b); %生成生成横坐标a、纵坐标b的矩阵
a = [1 2 3 4];
b = [5 6 7 8];
[X,Y] = meshgrid(a,b)
二维
-
plot(x,y) 线图,其中x,y为长度相同的向量,存储x坐标和y坐标
plot(x1,y1,‘k:’,x2,y2,‘b–’,…,xn,yn,‘rp’) 绘制n条曲线在一张图中
-
histogram(data,bin) 直方图,data为数据序列,bin为条形个数,图中的y轴值为在条形范围值的个数。
v=randn(1,100);
histogram(v,10)
xlim([-2,2]);只显示-2到2的直方图部分
-
bar(x,y) 条形图
-
stairs(x,y) 阶梯图
-
stem(x,y) 绘制离散序列
-
fill(x,y) 填充函数
x=0:2pi/20:2pi;
y=cos(x);
figure(1);
subplot(2,2,1);
bar(x,y)
title(‘柱状图’)
subplot(2,2,2);
stairs(x,y,‘b–’)
title(‘阶梯图’)
subplot(2,2,3);
stem(x,y)
title(‘离散图’)
subplot(2,2,4);
fill(x,y,‘g’)
title(‘填充图’)
- polar(theta,rho,) 极坐标图,theta为极坐标极角,rho为极径
figure(2)
theta=0:0.01:2pi;
rho=sin(5theta);
polar(theta,rho,‘r’);
-
对数坐标图
semilogx(x,y); %x轴为常用对数刻度,而y轴仍保持线性刻度
semilogy(x,y);
loglog(x,y) ; %x、y轴均采用对数刻度 -
散点图 scatter(x, y)
x = randn(1, 100);
y = randn(1, 100);
scatter(x,y,‘g’);
scatter(x,y,30,‘r’,‘filled’);
三维
- histogram2(data1,data2,20); %二维直方图
v=normrnd(2,2,1,10000);
w=randn(1,10000);
histogram2(w,v,50)
- plot3(x,y,z);
t = 0:10pi/1000:10pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,‘o’)
- mesh(X,Y,Z,C); %创建一个网格图,它是一个有边颜色但没有面颜色的三维曲面。其中X、Y、Z是同维数的矩阵,C为颜色矩阵,默认与Z相同。
a=-4:0.1:4;
b=-3:0.1:3;
[x,y]=meshgrid(a,b);
z=(x.2-2*x).*exp(-x.2-y.^2-x.*y);
C = z;
mesh(x,y,z,C)
xlabel(‘x’)
ylabel(‘y’)
colorbar
- surf(X,Y,Z,C) 它是一个具有实心边颜色和实心面颜色的三维曲面。可以用shading flat指令去掉边线获得更好视觉效果
a=-4:0.1:4;
b=-3:0.1:3;
[x,y]=meshgrid(a,b);
z=(x.2-2*x).*exp(-x.2-y.^2-x.*y);
C = z;
surf(x,y,z,C)
xlabel(‘x’)
ylabel(‘y’)
title(‘surf’)
shading flat