目录
函数注释
常用绘图函数
函数 |
功能 |
plot |
建立向量或矩阵的图形 |
line |
将数组中各点用线段链接起来 |
semilogx |
x轴用于对数标度,y轴线性标度绘制图形 |
semilogy |
y轴用于对数标度,x轴线性标度绘制图形 |
loglog |
x,y轴都取对数标度建立图形 |
plotyy |
在图形左右侧同时建立纵坐标轴 |
subplot |
在一个图形窗口中同时显示多个坐标轴图形 |
常用的绘图选项
选项 |
含义 |
* |
选项 |
含义 |
- |
实线 |
* |
. |
用点号标出数据点 |
- - |
虚线 |
* |
O |
用圆圈标出数据点 |
: |
点线 |
* |
x |
用x号标出数据点 |
-. |
点画线 |
* |
+ |
用加号标出数据点 |
r |
红色 |
* |
s |
用小正方形标出数据点 |
g |
绿色 |
* |
D |
用菱形标出数据点 |
b |
蓝色 |
* |
V |
用下三角标出数据点 |
y |
黄色 |
* |
^ |
用上三角标出数据点 |
m |
洋红 |
* |
< |
用左三角标出数据点 |
c |
青色 |
* |
> |
用右三角标出数据点 |
w |
白色 |
* |
H |
用六角形标出数据点 |
k |
黑色 |
* |
P |
用五角形标出数据点 |
* |
用星号标出数据点 |
常用属性
属性名 |
含义 |
LineWidth |
设置线的宽度 |
MarkerEdgeColor |
设置标记点的边缘颜色 |
MarkerSize |
设置标记点的大小 |
MarkerFaceColor |
设置标记点的填充颜色 |
常用坐标控制指令
坐标轴控制命令 |
解释 |
axis auto |
使用缺省设置 |
axis manual |
是当前坐标范围不变 |
axis off |
不显示坐标轴 |
axis on |
显示坐标轴 |
axis ij |
坐标轴原点在左上方 |
axis xy |
坐标轴原点在左下方 |
axis([x1,x2,y1,y2]) |
设定坐标轴范围 |
axis equal |
纵、横 坐标等长刻度 |
axis image |
纵横坐标等长刻度,坐标轴紧贴数据轮廓 |
axis square |
产生方形坐标系 |
axis |
缺省矩形坐标系 |
绘制二维曲线
Plot函数调用格式:
1
| plot(x,y,'linspec','propertyname',propertyvalue)
|
其中x,y为长对相同的向量,分别用于存储x坐标y坐标数据。
- 在-1<=x<=1区间内,绘制曲线y=2e-2x
1 2 3 4 5
| x=-1:0.1:1; y=2*exp(-2*x); plot(x,y,'md'); grid on; xlabel('x');yabel('y');
|
· 其中xlabel,ylabel
均为为X,Y坐标轴添加注释;
输出效果:
通过函数公式绘制函数图像
1 2
| f=@(x)x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x) ezplot(f,[0,0.1,30])
|
Line函数调用格式:
- 利用line函数绘制线型
1 2 3
| t=0:pi/20:2*pi; hline1=plot(t,sin(t),'k'); hline2=line(t+0.6,sin(t),'LineWidth',4);
|
plotyy函数调用格式:
1
| plotyy(x1,yi,x2,y2,fun1,fun2)
|
- 用不同标度在同一坐标系中绘制曲线y1=200e-0.05xsinx 以及 y2=0.8e-0.5xsin10x
1 2 3 4
| x=0:0.01:20; y1=200*exp(-0.05*x).*sin(x); y2=0.8*exp(-0.5*x).*sin(10*x); plotyy(x,y1,x,y2)
|
输出效果:
条形图—bar
函数
1 2 3 4 5 6 7
| x=-2.9:0.2:2.9; subplot(1,2,1);bar(x,exp(-x.*x),'r'); xlabel(x);ylabel(',exp(-x.*x)'); title('垂直条形图'); subplot(1,2,2);barh(x,exp(-x.*x),'y'); xlabel(x);ylabel(',exp(-x.*x)'); title('水平条形图');
|
- bar:以x轴为横坐标,y轴为纵坐标;
- barh:以y轴为横坐标,x轴为纵坐标;
- 括号内可添加(width/style/bar_color/Name/Value/axes_handle)
直方图—histogram
函数
1 2 3 4 5
| x = -4:0.1:4; y = randn(10000,1); histogram(y,x) h = findobj(gca,'Type','Histogram'); set(h,'FaceColor','r','EdgeColor','b') % 设置边界和填充颜色
|
饼状图—pie
函数
1 2 3 4 5 6 7
| X=[19.3 21.6 51.6;34.2 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 36.3 3.47] x=sum(X); explode=zeros(size(x)); [c,offest]=max(x); explode(offest)=1; h=pie(x,explode); colormap summer
|
极坐标图—polar
函数
1 2 3 4
| theta=0:0.01:2*pi; rho=2-2*sin(theta); figure polar(theta,rho,'r--')
|
· theta:极角;rho:极径
· polar(theta,rho,LineSpec):用LineSpec来指定极坐标图像中绘图的符号及颜色
误差条形图—errorbar
函数
1 2 3 4 5 6
| x=0:pi/10:pi; y=sin(x); e=std(y)*ones(size(x)); figure errorbar(x,y,e)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| % 误差相同情况 x = 1:10:100; y = [20 30 45 40 60 65 80 75 95 90]; err = 8*ones(size(y)); subplot(2,2,1); errorbar(x,y,err) % 误差变化情况 x = 1:10:100; y = [20 30 45 40 60 65 80 75 95 90]; err = [5 8 2 9 3 3 8 3 9 3]; subplot(2,2,2); errorbar(x,y,err)
% 水平方向误差 x = 1:10:100; y = [20 30 45 40 60 65 80 75 95 90]; err = [1 3 5 3 5 3 6 4 3 3]; subplot(2,2,3); errorbar(x,y,err,'horizontal') % 双方向误差 x = 1:10:100; y = [20 30 45 40 60 65 80 75 95 90]; err = [4 3 5 3 5 3 6 4 3 3]; errorbar(x,y,err,'both') % 双方向误差,没有线情况 x = 1:10:100; y = [20 30 45 40 60 65 80 75 95 90]; err = [4 3 5 3 5 3 6 4 3 3]; subplot(2,2,4); errorbar(x,y,err,'both','o')
|
火柴杆图stem
函数
1 2 3 4 5
| x=0:25; y=[exp(-.07*x).*cos(x);exp(.05*x).*cos(x)]'; h=stem(x,y); set(h(1),'MarkerFaceColor','blue') set(h(2),'MarkerFaceColor','red','Marker','square')
|
阶梯图stairs
函数
1 2 3 4 5
| X=linespace(0,1,30)'; Y=[cos(10*x),exp(X).*sin(10*X)]; h=stairs(X,Y); set(h(1),'Marker','o','MarkerSize',4) set(h(2),'Marker','o',MarkerFaceColor','m')
|
特殊函数调用
Fplot函数
fplot函数根据函数的表达式自动调整自变量的范围,无需给函数赋值,直接生成反应函数变化规律的图形,在函数变化快的区域,采用小间隔,否则采用大的坐标间隔,使绘制的图形的计算量与时间最小,而又能尽可能精确的反应图形的变化。fplot函数一般在对横坐标的取值间隔没有明确的要求,仅查看函数大致的变化规律的情况下使用,函数的调用格式如下:
1 2
| a=@(x) sin(x^exp(x)); fplot(a,[0,1.8])
|
· @(x):定义自变量
· fplot(函数名,取值范围)
效果:
ezplot函数
采用ezplot函数绘制二元函数图像。该函数不仅能够绘制显函数图像,还能绘制隐函数图像。
- 绘制{x=cos5t y=sin3t},t(0,2pi)与隐函数5x2+25y2=6的图形。
1 2 3 4 5 6
| subplot(2,1,1); ezplot('cos(5*t)','sin(3*t)',[0,2*pi]) grid on; subplot(2,1,2); ezplot('5*x^2+25*y^2=6',[-1.5,1.5,-1,1]) grid on;
|
绘制小幅一图多像
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| % 同时绘制变量dv1-dv4的柱状分布图 figure subplot(2,2,1); hist(X(:,2)); title('dv1柱状分布图','fontsize',12) subplot(2,2,2); hist(X(:,3)); title('dv2柱状分布图','fontsize',12) subplot(2,2,3); hist(X(:,4)); title('dv3柱状分布图','fontsize',12) subplot(2,2,4); hist(X(:,5)); title('dv4柱状分布图','fontsize',12)
|
绘制三维曲线
空间曲线—plot3
函数
1 2 3 4 5
| x=20*t; z=100-0.5*9.781*t.^2; y=3*t; plot3(x,y,z,'rD'); grid on;
|
网格图—meshgrid
函数
1 2 3 4 5 6
| figure(3) x=linspace(-2,2,500) y=linspace(-2,2,500) [xx,yy]=meshgrid(x,y) zz=xx.*exp(-xx.^2-yy.^2) mesh(xx,yy,zz)
|
三位网格及等高线—peaks
函数
1 2 3 4 5
| figure [X,Y] = meshgrid(-3:0.0125:3); Z = peaks(X,Y); meshc(X,Y,Z); axis([-3 3 -3 3 -10 10])
|