%% 1.基本绘图指令plot()
%% 2.矩阵绘图
%% 3.绘制三条曲线
%% 4.绘制双纵坐标图
%% 5.极坐标绘图
%% 6.极坐标和直角坐标的相互转化
%% 7.对数坐标系绘图
%% 8.图形窗分割 subplot()
%% 9.坐标轴设置
%% 10.图形标识
%% 11.ezplot()简易绘图指令(用于隐含数绘图)
%% 12.ezploar()极坐标图形简易绘制
%% 13.直方图绘制
%% 14.扇形图绘制
%% 15.离散杆状图和离散阶梯图
%%
clf;%用于清除图形,一般在画图前使用
% 1.基本绘图指令plot()
x1=linspace(0,4,10);
y1=sin(x1)+sin(8*x1);
x2=linspace(0,4,100);
y2=sin(x2)+sin(8*x2);
subplot(1,2,1);%在同一个窗口中创建一行两列区域在第 1 个区域显示图形
plot(x1,y1);%绘图指令,x1为横坐标,y1为纵坐标
title('picture1');%图形名称
subplot(1,2,2);%第 2 个区域显示图形
plot(x2,y2,x2,y2,'r*');%前两个x2,y2用来显示曲线连接,后两个x2,y2用来显示*,如果没有前两个则直接为散点 *
title('picture2');
% 2.矩阵绘图
x=linspace(0,1,30)';%列向量
k=linspace(0.2,0.8,7);%行向量
y=exp(0.5*x)*k;%30*7的矩阵
plot(y,x);%显示7根曲线
% 3.绘制三条曲线
x=linspace(0,6,20);
y=x.^2.*sin(x);%每个元素独立进行标量运算,需要带上点(否则会因为维数不同而报错)
figure(1);%新建 1 图形窗口 1
plot(x,y);
figure(2);%新建图像窗口(避免被刷新)
y1=y+2;
y2=y-2;
plot(x,y,x,y1,'k-.*',x,y2,':x');%在一幅图中显示 3 个图像,依次类推 n
% 4.绘制双纵坐标图
x=linspace(0,8,100);
y1=2*exp(-0.5*x).*sin(2*pi*x);
y2=4.5*exp(-0.1*x).*sin(x);
plotyy(x,y1,x,y2);%绘制双纵坐标图
% 5.极坐标绘图
th=linspace(0,2*pi,100);
r=3*(1+cos(th));
polar(th,r,'g-*');%极坐标指令,依次为θ、ρ、控制符
% 6.极坐标和直角坐标的相互转化
[th,r]=cart2pol(1,3);%直角坐标转换为极坐标
[x,y]=pol2cart(pi/3,2);%极坐标转化为直角坐标
% 7.对数坐标系绘图
x=linspace(0,10,100);
y=x.^3+x.^2-2*x+6;
figure(1);
semilogy(x,y);%半对数坐标(y)
grid on; %显示网格
figure(2);
semilogx(x,y);%半对数坐标(x)
grid on;
figure(3);
loglog(x,y);%全对数坐标
grid on;
% 8.图形窗分割 subplot()
subplot(2,3,1:2);%分区后将 1、2 区域合并
t=linspace(0,10,200);
y1=sin(2*pi*t);
plot(t,y1);
subplot(233);%与subplot(2,3,3)等价
y2=sin(t);
plot(t,y2);
subplot('position',[0.2 0.05 0.65 0.45]);%左下角(0.2,0.05)、右上角(0.65,0.45)
y3=y1.*y2;
plot(t,y3,'g-',t,y2,':r',t,-y2,':r');
% 9.坐标轴设置
x=linspace(0,2*pi,30);
y=sin(x).*cos(2*x);
plot(x,y,'g');
hold on;%在当前图形上继续画图
plot(x,y+0.5);
hold off;
axis([0,2*pi,-1.5,1.5]);%设置坐标系统的最大值和最小值
set(gca,'xtick',linspace(0,5,6),'ytick',[-1.5,0,0.2,1]);%设定坐标轴的刻度标识
% 10.图形标识
t=0:pi/100:2*pi;
y1=2*sin(2*t);
y2=3*sin(3*t);
plot(t,y1,t,y2,'g-.');
axis([0,pi,-4,4]);
title('正弦曲线0\rightarrow\pi');%图形标题
xlabel('时间');%图形横坐标
ylabel('函数值');%图形纵坐标
text(pi/4,2*sin(pi/2),'pi/4的函数值');%文本
gtext('3sin(3t)的极小值');%鼠标确定文本位置
legend('2sin(2t)','3sin(3t)','NorthEast')%输出图形图例,最后一个参数表示方位
% 11.ezplot()简易绘图指令(用于隐含数绘图)
subplot(2,2,1);
ezplot('x^2-y+1');%f(x)=x^2-y+1,直角坐标形式,此处缺省为默认区间(x,y)∈[-2pi,2pi]
subplot(222);
ezplot('x^2-cos(y)+sin(x)',[-2,1,-15,15]);%此处没缺省,区间为x∈(-2,1),y∈(-15,15)
subplot(223);
ezplot('exp(t)*sin(t)','exp(t)*cos(t)');%x(t)=exp(t)*sin(t),y(t)=exp(t)*cos(t) 参数方程形式,此处缺省为默认区间t∈(0,2pi)
subplot(224);
ezplot('sin(t)','cos(2*t)',[-8,6]);%此处没缺省,区间为t∈(-8,6)
% 12.ezploar()极坐标图形简易绘制
ezpolar('abs(2*cos(2*(t-pi/8)))');%第一个参数为ρ,第二个参数缺省时为t∈(0,2pi)
ezpolar('abs(2*cos(2*(t-pi/8)))',[0,4/3*pi]);%第二个参数没缺省,t∈(0,4/3pi)
% 13.直方图绘制
y=round(rand(5,3)*10);
subplot(1,3,1);
bar(y,'group');% bar 垂直分组
title('垂直分组式');
legend('first','second','third');
axis([0,6,0,12]);
xlabel('x');
ylabel('y');
subplot(132);
bar(y,'stack');% bar 垂直积累
title('垂直积累式');
axis([0,6,0,25]);
xlabel('x');
ylabel('y');
subplot(133);
barh(y,0.5);% barh 水平显示
title('水平分组式,宽度0.5');
xlabel('x');
ylabel('y');
% 14.扇形图绘制
data=[10 12 19 30 42];% 数据
explode=[0 1 0 0 100];% 对应数据在扇形图中所占的部分是与总体否分开,分开的大小
pie(data,explode);
% 15.离散杆状图和离散阶梯图
t=linspace(0,2*pi,20);
y=cos(t).*exp(-0.2*t);
stem(t,y,'filled');%离散杆状图 最后一个参数缺省时表示空心,filled表示实心
title('离散信号的杆图和阶梯图');
xlabel('t');
ylabel('cos(t)*e^{-0.2t}');
hold on;
stairs(t,y,'g:');%离散阶梯图
hold off;