一、目录
1.区域图
2.填充图
二维填充图
三维填充图
3.条形图
二维条形图
三维条形图
4.直方图
笛卡儿坐标系下的直方图
极坐标系下得直方图
5.圆体图
圆柱体
球体
椭圆体
6.饼图
二维饼图
三维饼图
7.排列图
8.离散图形
二维柄状图
三维柄状图
阶梯图
9.散点图
二维散点图
多边形区域内的散点
三维散点图
散点图矩阵
10.轮廓图
二维轮廓图
填充轮廓线
三维轮廓图
11.向量图
罗盘图
羽状图
箭头图
法线图
12.多边形面积图
二、图形示例
1.区域图
MATLAB程序如下:
Y=[1,5,3;
3,2,7;
1,5,3;
2,6,1];
area(Y)
grid on
set(gca,'Layer','top')
title('Stacked Area Plot')
pic 1
2.填充图
二维填充图
MATLAB程序如下:
t=(1/16:1/8:1)'*2*pi;%八边形顶点
x1=sin(t);
y1=cos(t);
t=(0:1/10:1)'*2*pi;%十边形顶点
x2=2+sin(t);
y2=cos(t);
fill(x1,y1,'y',x2,y2,'w')
title('二维填充图示例')
axis equal
axis off
text(-0.75,0,'\fontname{隶书}\fontsize{32}八边形')
text(1.25,0,'\fontname{隶书}\fontsize{32}十边形')
pic 2
三维填充图
MATLAB程序如下:
X=[0 1 1 2;1 1 2 2;0 0 1 1];%创建四个三角形
Y=[1 1 1 1;1 0 1 0;0 0 0 0];
Z=[1 1 1 1;1 0 1 0;0 0 0 0];
C=[0.5 1 1 0.5;
1 0.5 0.5 0.1667;
0.333 0.333 0.5 0.5];%色彩着色
fill3(X,Y,Z,C)
title('三维填充图')
pic 3
3.条形图
二维条形图
MATLAB程序如下:
Y=round(rand(5,3)*10);%随机函数产生5×3的数组,对产生的数据取整
subplot(2,2,1)
bar(Y,'group')
title('Group')
subplot(2,2,2)
bar(Y,'stack')%堆型二维垂直条形图
title('Stack')
subplot(2,2,3)
barh(Y,'stack')%堆型二维水平条形图
title('Stack')
subplot(2,2,4)
bar(Y,1.5)%设定条形的宽度为1.5
title('Width=1.5')
pic 4
三维条形图
MATLAB程序如下:
Y=[1 2 3 4 5 6 7;
1 2 3 4 3 2 1;
7 6 5 4 3 2 1];
subplot(2,3,1)
bar3(Y,'detached')
title('Detached')
subplot(2,3,4)
bar3(Y,0.25,'detached')
title('Width=0.25')
subplot(2,3,2)
bar3(Y,'grouped')
title('Grouped')
subplot(2,3,5)
bar3(Y,0.5,'grouped')
title('Width=0.5')
subplot(2,3,3)
bar3(Y,'stacked')
title('Stacked')
subplot(2,3,6)
bar3h(Y,0.3,'stacked')
title('Width=0.3')
pic 5
4.直方图
笛卡儿坐标系下的直方图
MATLAB程序如下:
x=-2.9:0.1:2.9;
y=randn(1000,1)
hist(y,x)
title('笛卡儿坐标系下的直方图')
pic 6
极坐标系下的直方图
MATLAB程序如下:
theta = 2*pi*rand(1,100);
rose(theta)
title('极坐标系下的直方图')
pic 7
5.圆体图
圆柱体
MATLAB程序如下:
t=0:pi/10:2*pi;
[x,y,z]=cylinder(2+cos(t),100);
surf(x,y,z)
axis square
title('圆柱形图示例')
pic 8
球体
MATLAB程序如下:
sphere
axis equal
pic 9
椭圆体
MATLAB程序如下:
[x y z]=ellipsoid(1,2,3,5,1,10);
view(3)
surface(x,y,z)
title('椭圆体:中心点(1,2,3),半径(5,1,10)')
pic 10
6.饼图
二维饼图
MATLAB程序如下:
x=[1 3 0.5 2.5 2];
subplot(221);
pie(x)%绘制饼图
subplot(222)
explode=[0 1 0 0 0];
pie(x,explode)%加上分离的切片
subplot(223)
label={'一班' '二班' '三班' '四班' '五班'};
pie(x,label);%给每个切片加上标注
subplot(224);
pie(x,explode,label);%具有分离和自定义标注的功能
pic 11
三维饼图
x=[5 10 7 8 1.3];
explode=[0 1 0 0 0];
pie3(x,explode)
title('三维饼图')
pic 12
7.排列图
MATLAB程序如下:
Y=[1 2 5 3.3 0.9 5.2];
names={'一队' '二队' '三队' '四队' '五队' '六队'};
X=[1 2 3 4 5 6];
subplot(211)
pareto(Y,names)%x轴的下标标识为names
title('排列图示例一')
subplot(212)
pareto(Y,X)
title('排列图示例二')%x轴下标有x指定
pic 13
8.离散图形
二维柄状图
MATLAB程序如下:
y=linspace(0,2*pi,10)
stem(cos(y),'fill','-.')%对离散图的末端进行了填充
title('二维柄状图示例');
pic 14
三维柄状图
MATLAB程序如下:
X=linspace(0,2*pi,50);
Y=X./2;
Z=sin(X)+cos(Y);
stem3(sin(X),cos(Y),Z,'fill')
xlabel('sin(X)');
ylabel('cos(Y)');
zlabel('sin(X)+cos(Y)');
title('三维柄状图示例');
pic 15
阶梯图
MATLAB程序如下:
x=0:.25:10;
subplot(211)
stairs(x,sin(x))
title('stairs函数应用示例')
subplot(212)
[xb,yb]=stairs(x,sin(x));%返回plot函数的两个参数
plot(xb,yb)
title('plot函数实现stairs函数应用示例')
pic 16
9.散点图
二维散点图
MATLAB程序如下:
x=rand(1,100)*100;%绘制图标的x,y轴的坐标
y=rand(1,100)*100;
s=rand(1,100)*100;%绘制图标的大小
c=rand(1,100)*255;%绘制图标的颜色
subplot(2,1,1)
scatter(x,y);%绘制具有默认大小与颜色的二维散点图
title('二维散点图指令scatter(x,y)');
subplot(2,1,2)
scatter(x,y,s,c);%绘制由参数s、c定义的二维散点图
title('二维散点图指令scatter(x,y,s,c)');
pic 17
多边形区域内的散点
L=linspace(0,2.*pi,6);
xv=cos(L)';
yv=sin(L)';
xv=[xv;xv(1)];
yv=[yv;yv(1)];%设定多边形
x=randn(250,1);
y=randn(250,1);%设定散点
in=inpolygon(x,y,xv,yv);%判断散点与多边形关系值
plot(xv,yv,x(in),y(in),'r+',x(~in),y(~in),'bo')
axis equal
pic 18
三维散点图
MATLAB程序如下:
[x,y,z]=sphere(16);%获取球体的坐标
X=x(:);
Y=y(:);
Z=z(:);%矩阵的转换
S=floor((abs(Z)+1)*50);
C=floor(abs(Z)*255);%定义图标大小和颜色与球体的纬度有关
scatter3(X,Y,Z,S,C,'filled')%绘制三维散点图,填充图标
title('三维散点图:球体示例')
pic 19
散点图矩阵
MATLAB程序如下:
x=randn(50,3);
y=x*[-1 2 1;2 0 1;1 -2 3];%定义绘制矩阵值
plotmatrix(y,'*b')
title('绘制3×3散点图矩阵')
pic 20
10.轮廓图
二维轮廓图
MATLAB程序如下:
[X,Y]=meshgrid(-2:.2:2,-2:.2:3);%表面网格函数
Z=X.*exp(-X.^2-Y.^2);
[C,h]=contour(X,Y,Z,10);%绘制轮廓线
clabel(C,h)%对轮廓线进行标注
title('二维轮廓图示例')
pic 21
填充轮廓线
MATLAB程序如下:
Z=peaks;
[C,h]=contourf(Z,10);%绘制二维轮廓线,并且填充
caxis([-20 20])%伪色彩,设置轴参数CLim和CLimMode
clabel(C,h)%标注轮廓线
title('Filled Contour Plot Using')
pic 22
三维轮廓图
MATLAB程序如下:
[X,Y]=meshgrid([-2:.25:2]);
Z=X.*exp(-X.^2-Y.^2);
[C,h]=contour3(X,Y,Z,30);%绘制三维轮廓图
grid off
%clabel(C,h)
title('三维轮廓图示例')
pic 23
11.向量图
罗盘图
MATLAB程序如下:
X=[0 30 90 45 145 270 330 225 150];
Y=[5 9 3 10 6 3 2.6 8 7.4];
X=X*pi/180;
[X,Y]=pol2cart(X,Y);%极坐标转化为直角坐标
compass(X,Y);
title('罗盘图示例')
pic 24
羽状图
theta=(-90:10:90)*pi/180;
r=2*ones(size(theta));
[u,v]=pol2cart(theta,r);
feather(u,v);
title('羽状图示例')
pic 25
箭头图
二维箭头图
MATLAB程序如下:
[X,Y]=meshgrid(-2:.2:2);
Z=X.*exp(-X.^2-Y.^2);
[DX,DY]=gradient(Z,.2,.2);%计算梯度,.2是DX方向距离
contour(X,Y,Z)
hold on
quiver(X,Y,DX,DY)
grid off
hold off
title('二维箭头图示例')
pic 26
三维箭头图
MATLAB程序如下:
[X,Y]=meshgrid(-2:0.25:2,-1:0.2:1);
Z=X.*exp(-X.^2-Y.^2);
[U,V,W]=surfnorm(X,Y,Z);%返回三维表面图的法线
quiver3(X,Y,Z,U,V,W,0.5);
hold on
surf(X,Y,Z);
axis([-2 2 -1 1 -.6 .6])
hold off
title('三维箭头图示例')
pic 27
法线图
MATLAB程序如下:
[x y z]=peaks(20);
surfnorm(x,y,z);
pic 28
12.多边形面积图
MATLAB程序如下:
L=Linspace(0,2.*pi,6);
xv=cos(L)';
yv=sin(L)';
xv=[xv;xv(1)];
yv=[yv;yv(1)];
A=polyarea(xv,yv);
plot(xv,yv);
title(['Area=' num2str(A)]);
axis image
pic 29
==================================================
Matlab中set-gca函数的使用
Matlab坐标修改gca
1、 坐标轴删除
set(gca,’xtick’,[]) %去掉x轴的刻度
set(gca,’ytick’,[]) %去掉y轴的刻度
set(gca,’xtick’,[],’ytick’,[]) %同时去掉x轴和y轴的刻度
2、 Matlab中“坐标轴刻度”的不同风格
set(gca,’xtick’,[]) %去掉x轴的刻度
set(gca,’ytick’,[]) %去掉y轴的刻度
set(gca,’xtick’,[],’ytick’,[]) %同时去掉x轴和y轴的刻度
另附上Matlab坐标调整程序一段:
x=20:10:20000;
y=rand(size(x));
semilogx(x,y);
set(gca,’XLim’,[20 20000]);
就是设置当前图的横轴和纵轴的范围,lim就是limite的意思。
也可以不用set设置,而直接用函数xlim和ylim设置
xlim(gca,[-20,20]);
ylim(gca,[-20,20]);
也可以用函数axis设置
axis(gca,[-20,20,-20,20])
gca是get hanlde to current axis(得到当前图的句柄),除set函数外在以上函数中均可省略不写,默认就是gca。
set(gca,’XMinorTick’,’off’); %关闭精准坐标刻度
set(gca,’XTick’,[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,’XGrid’,’on’); %绘制X轴垂直网格线
set(gca,’XMinorGrid’,’off’);
3、 Matlab坐标轴刻度调整
subplot(3,2,1)
plot(x)
title('默认格式')
subplot(3,2,2)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'ytick',[]);
title('x自定义间隔,y关闭')
subplot(3,2,3)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'xticklabel',sprintf('.4f|',get(gca,'xtick')))
set(gca,'ytick',[2 4 5 7]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});
title('x、y自定义间隔、精度及显示方式')
subplot(3,2,4)
plot(x)
set(gca,'xminortick','on');%style 5
set(gca,'ticklength',[0.05 0.025]);
set(gca,'tickdir','out');
title('x、y坐标刻度显示方式')
subplot(3,2,5)
plot(x)
set(gca,'xtick',[min(x) (max(x)+min(x))/2 max(x)]);
set(gca,'ytick',[min(x) (max(x)+min(x))/2 max(x)]);
title('论文中常用的标准3点式显示')
x=20:10:20000; y=rand(size(x));
subplot(3,2,6)
semilogx(x,y);
set(gca,'XLim',[20 20000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');
title('自定义网格显示')
%顺便附上可以格式化坐标刻度的程序段
x=get(gca,'xlim');
y=get(gca,'ylim');
set(gca,'xtick',[x(1) (x(1)+x(2))/2 x(2)]);
set(gca,'ytick',[y(1) (y(1)+y(2))/2 y(2)]);
-------------
get(gca,'xlim');是获取最大最小刻度的
如果需要获取所有在坐标轴上显示的刻度,需要使用get(gca,'ytick')
Axes对象的属性
(1)title('new','color','r');给坐标轴命名为new,红色
title({'this title','has 2 '});命名为两行的标题
(2)Units:有效值为pixels/normalized/inches /centimeters/points/characters
决定各种位置属性的度量单位,相对于窗口左下角为基准。当设置为Pixels时, 以像素为单位;当设置为normalized时,以坐标为单位,屏幕的左下角为[0,0],右上角为[1.0,1.0]。
(3)grid on:在图像中显示网格。
(4)children:控制axes对象的子对象,即image\light\line\patch \rectangle\surface和text等对象,可通过get(gca,'children')来返回当前坐标轴的子对象构成的句柄值向量。
(5) 字体属性:
Fontangle字体角度(正常normal或斜体italic/oblique)
Fontname字体名称
fontsize 字体大小(单位由Fontunits决定)
fontunits字体单位(points/normalized/inches /centimeters/pixels)
fontweight字体粗细(normal/bold/light/demi)
gridlinestyle 决定坐标轴网格线的样式,‘-’为实线‘- -’为虚线‘:’为点线‘-.’为点虚线
plot(1:10);grid on;set(gca,'gridlinestyle','-.');将当前坐标轴显示的网格线为点-虚线
(6)linewidth 定义X,Y和Z轴的轴线宽度(以点单位定义)
(7)NextPlot:有效值为add|replace|replacechildren,默认为 replace
add表示使用当前的坐标轴,把新的图形对象加到此坐标轴中是一般保留的做法,replace表示重新设置坐标轴的所有属性 (Position除外),也就是在绘图前会删除当前坐标轴和它的子对象。replacechildren表示移除当前坐标轴中所有子对象,但不重新设置 坐标轴的所有属性
(8)Outerposition决定坐标轴外边界的位置。由位置向量[left,bottom,width,height]组 成,其中left,bottom表示相对于绘图窗口左下角的位置,width,height表示区域尺寸,默认为[0 0 1 1]
(9)Position 由位置向量[left,bottom,width,height]组成,决定坐标轴位置
(10)Tag定义本坐标轴的卷展栏,因为每一个对象都有 自己唯一的识别码即tag,以方便findobj函数查找坐标轴句柄值。
(11)visible决定坐标轴是否可见
(12)set(gca,'xgrid','on') 绘制X轴垂直网格线
set(gca,'gridlinestyle',':','linewidth',3)设置网格线线条类型和宽度
set(gca,'box','on') 将图轴方框绘制出来
(13)set(gca,'xscale','linear');将X轴刻度设为线性
set(gca,'yscale','log'); 将Y轴刻度设为对数
(14)disp()显示一个数组,但不显示其数组名称