二维曲线
plot函数
- plot函数的基本用法
plot(x, y)
其中,x和y分别用于存储x坐标和y坐标数据。 - 最简单的plot函数调用格式
plot(x) - 当plot函数的参数x是复数向量时,则分别以该向量元素实部和 虚部为横、纵坐标绘制出一条曲线。
>> x=[1,5,6,9,8];
>> y=[8,6,9,5,2];
>> cx=complex(x,y);
>> plot(cx)
- plot(x, y)函数参数的变化形式
当x是向量,y是矩阵时
如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。 - 含选项的plot函数
plot(x, y,选项)
fplot函数
- fplot函数的基本用法 : fplot(f,(lims),选项)
其中,f代表-一个函数,通常采用函数句柄的形式。
lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。 选项 定义与plot函数相同。
>> fplot(@(x)sin(1./x),[0,0.2],'b')
- 双输入函数参数的用法: fplot(funx, funy, tlims, 选项)
其中,funx、 funy代表函数,通常采用函数句柄的形式。
tlims为参 数函数funx和funy的自变量的取值范围,用二元向量[tmin, tmax]描述。
>> fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,10*pi],'b')
绘制图形的辅助操作
图形标注
- title(图形标题)
title函数的基本用法: title(图形标题) - title(图形标题,属性名,属性值)
Color属性:用于设置图形标题文本的颜色。
FontSize属性:用于设置标题文字的字号。
>> x=-2*pi:0.05:2*pi;
>> y=sin(x);
>> plot(x,y)
>> title('y=sin(x)')
-
xlabel(x轴说明)
-
ylabel(y轴说明)
-
text(x, y,图形说明)
>> text(-2*pi,0, '-2{\pi}')
>> text(3, 0.28,'\leftarrow sin(x)')
- gtext(说明)
- legend(图例1,图例2, …)
>> X = linspace(0,2*pi,100);
>> plot(x, [sin(x); sin(2*x); sin(3*x)])
>> legend('sin(x)', 'sin(2x)', 'sin(3x)')
坐标控制
axis函数
axis([xmin, xmax, ymin, ymax, zmin, zmax])
axis的其他用法
- axis equal:纵、横坐标轴采用等长刻度
- axis square:产生正方形坐标系(默认为矩形)
- axis auto:使用默认设置
- axis off:取消坐标轴
- axis on:显示坐标轴
添加网格和边框
- grid on
- grid off
- grid
x=linspace(0, 2*pi, 100);
y=[sin(x); sin(2*x); sin(0.5*x)];
plot(x,y)
axis([O, 7,-1.2, 1.2])
title('不同频率正弦函数曲线");
xlabel(Variable X); ylabel(Variable Y');
text(2.5, sin(2.5), 'sin(x); .
text(1.5, sin(2*1 .5), 'sin(2x)");
text(5.5, sin(0.5*5.5), 'sin(0.5x);
legend(sin(x)','sin(2x), sin(0.5x)")
grid on
图形保持
- hold on
- hold off
- hold
t = linspace(O, 2*pi, 100); .
X= sin(t); y = cos(t);
plot(x,y, 'b')
hold on;
plot(2*x, 2*y, r-)
grid on
axis([-2.2, 2.2, -2.2, 2.2])
axis equal
图形窗口的分割
subplot(m, n, p)
其中,m和n指定将图形窗C ]分成m X n个绘图区,p指定当前活动区。
>> subplot(2, 2, 1);
>> x=linspace(0, 2*pi, 60);
>> y=sin(x);
>> plot(x, y);
>> title('sin(x);
>> axis([0, 2*pi,-1, 1]);
其他形式的二维图形
其他坐标系下的二维曲线图
对数坐标图
- semilogx(x1, yl, 选项1, x2, y2,选项2, .)
- semilogy(x1, y1,选项1, x2, y2,选项2,…)
- loglog(x1, y1,选项1, x2, y2,选项2, … )
极坐标图
polar(theta, rho,选项)
其中,theta为极角,rho为极径,选项的内容与plot函数相同。
t=0:pi/100:2*pi;
r= 1-sin(t);
subplot(1,2, 1)
polar(t, r)
subplot(1, 2, 2)
tl = t-pi/2;
r1 = 1-sin(t1);
polar(t, r1)
统计图
- bar函数
bar(y, style)
其中,参数y是数据,选项style用于指定分组排列模式,有”grouped”:簇状分组、“stacked”:堆积分组。
x=[2015, 2016, 2017];
y=[68, 80, 115, 98, 102;75, 88, 102, 99, 110;81, 86, 125, 105, 115];
bar(x, y)
title("Group');
- barh函数
与bar相同
直方图
- hist函数
hist(y)
hist(y, x)
其中,参数y是要统计的数据,x用于指定区间的划分方式。
y=randn(500, 1);
subplot(2, 1, 1);
hist(y);
title('高斯分布直方图');
subplot(2, 1, 2);
x=-3:0.2 : 3;
hist(y, x);
title('指定区间中心点的直方图')
- rose()函数
rose(theta, x)
其中,参数theta用于确定每一-区间与原点的角度,选项x用于指定区间的划分方式。
>> y=randn(500, 1);
theta=y*pi;
rose(theta)
>> title('在极坐标下的直方图')
散点图
- scatter函数
scatter(x, y,选项, ‘filled’)
参数x、y用于定位数据点,选项用于指定 线型、颜色、数据点标记。
>> t=0: pi/50: 2*pi;
x= 16*sin(t).^3;
y= 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
>> scatter(x, y, 'rd', 'filled')
饼图
- pie函数
pie(x, explode)
其中,参数x存储待统计数据,选项explode控制图块的显示模式。
>> score=[5, 17, 23, 9, 4];
ex=[0,0,0,0, 1];
pie(score, ex)
>> legend('优秀','良好','中等','及格','不及格');
三维曲线
plot3函数
plot3函数的基本用法: plot3(x, y, z)
其中,参数x、y、z组成一组曲线的坐标。
plot3(x, y, z,选项)
选项用于指定曲线的线型、颜色和数据点标记。
x=[0.2, 1.8, 2.5];
y=[1.3, 2.8, 1.1];
z=[0.4, 1.2, 1.6];
plot3(x, y, z)
grid on
axis([0,3, 1,3, 0, 2]);
t=0:0.01 :2*pi;
t=t';
x=[t,t,t,t, t];
y=[sin(t), sin(t)+ 1, sin(t)+2, sin(t)+3, sin(t)+4];
z=[t,t, t,t, t];
plot3(x, y, z)
>> t=0: pi/50:6*pi;
>> x=cos(t);
>> y=sin(t);
>> z=2*t;
>> plot3(x, y,z, 'p')
>> grid on
三维曲面
平面网格数据的生成
利用矩阵运算生成
>>x=2:6;
>>y=(3: 8)';
>> X = ones(size(y))*x;
> Y=y*ones(size(x));
利用meshgrid函数生成
[X, Y]=meshgrid(x, y);
其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。
X= 2:6;
y= (3:8);
[X, Y]= meshgrid(x, y);
Z = randn(size(X));
plot3(X,Y,Z); .
grid on;
mesh函数
surf函数
其中,X、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。
>> t= -2:0.2:2;
[X, Y]= meshgrid(t);
Z=X.* exp(-X.^2- Y.^2);
subplot(1,3,1)
mesh(X,Y,Z);
subplot(1,3,2)
surf(X,Y,Z);
subplot(1,3,3)
plot3(X,Y,Z);
grid on
mesh(z, c)
surf(z, c)
当x、y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。
带等高线的三维网格曲面函数meshc
带底座的三维网格曲面函数meshz
具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl
>> [x,y]=meshgrid(0:0.1 :2, 1 :0.1 :3);
z=(x-1).^2+(y-2).^2- 1;
subplot(2, 2, 1);
meshc(x, y, z); title('meshc(x, y, z)')
subplot(2, 2, 2);
meshz(x, y, z); title('meshz(x, y, z)')
subplot(2, 2, 3);
surfc(x, y, z); title('surfc(x, y, z')
subplot(2, 2, 4);
surfl(x, y, z); title('surfl(x, y, z)')
标准三维曲面
sphere函数
[x, y, z]=sphere(n)
cylinder函数
[x, y, z]=cylinder(R, n)
subplot(1,3, 1);
[x, y, z]=cylinder;
surf(x, y, z);
subplot(1,3, 2);
t=linspace(0,2*pi, 40);
[x,y,z]=cylinder(2+cos(t), 30);
surf(x, y, z);
subplot(1, 3, 3);
[x,y, z]=cylinder(0: 0.2 :2, 30);
surf(x, y, z);
[x, y, z]= cylinder(1, 60);
z=[-1*z(2,:); z(2,:)];
surf(x, y, z);
hold on .
surf(y, z, x);
axis equal
图形修饰处理
交互式绘图工具
>>plottools
绘制二维曲线的函数
- plot()、fplot()
绘制三维曲线的函数
- plot3()、fplot3()
绘制三维曲面的函数
- mesh()、surf()、 fmesh()、 fsurf()