天天看点

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

matlab或_MATLAB学习——Matlab绘图系列之基本绘图
前言

说是前言,其实就是和大家简单唠唠。我也是学MATLAB踩过不少的坑,所以一路走来感触很深,至今我还记得我大学的老师说过的一句话:一切以你亲自操作的为准。其实,我的体会就是多用、多练,熟能生巧来形容再合适不过了,也祝对MATLAB感兴趣的朋友们,可以在操作MATLAB的过程中有更大的收获和进步!

一、目录

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')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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}十边形')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('三维填充图')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 5

4.直方图 笛卡儿坐标系下的直方图 MATLAB程序如下:

x=-2.9:0.1:2.9;

y=randn(1000,1)

hist(y,x)

title('笛卡儿坐标系下的直方图')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 6

极坐标系下的直方图 MATLAB程序如下:

theta = 2*pi*rand(1,100);

rose(theta)

title('极坐标系下的直方图')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('圆柱形图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 8

球体 MATLAB程序如下:

sphere

axis equal

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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)')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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);%具有分离和自定义标注的功能

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 11

三维饼图

x=[5 10 7 8 1.3];

explode=[0 1 0 0 0];

pie3(x,explode)

title('三维饼图')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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指定

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 13

8.离散图形 二维柄状图 MATLAB程序如下:

y=linspace(0,2*pi,10)

stem(cos(y),'fill','-.')%对离散图的末端进行了填充

title('二维柄状图示例');

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('三维柄状图示例');

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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函数应用示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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)');

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('三维散点图:球体示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 19

散点图矩阵 MATLAB程序如下:

x=randn(50,3);

y=x*[-1 2 1;2 0 1;1 -2 3];%定义绘制矩阵值

plotmatrix(y,'*b')

title('绘制3×3散点图矩阵')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('二维轮廓图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 21

填充轮廓线 MATLAB程序如下:

Z=peaks;

[C,h]=contourf(Z,10);%绘制二维轮廓线,并且填充

caxis([-20 20])%伪色彩,设置轴参数CLim和CLimMode

clabel(C,h)%标注轮廓线

title('Filled Contour Plot Using')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('三维轮廓图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('罗盘图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 24

羽状图

theta=(-90:10:90)*pi/180;

r=2*ones(size(theta));

[u,v]=pol2cart(theta,r);

feather(u,v);

title('羽状图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('二维箭头图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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('三维箭头图示例')

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 27

法线图 MATLAB程序如下:

[x y z]=peaks(20);

surfnorm(x,y,z);

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

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

matlab或_MATLAB学习——Matlab绘图系列之基本绘图

pic 29

如果大家想看更多有关数学方面的趣闻,欢迎点击下方链接相互学习:

1、小编“墙裂”推荐【谈谈无穷小等价替换的理解及风华正茂的我们 - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/23128692】

2、【谈线性代数里面的正交变换和复习线代的感悟 - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/30542390】

3、【恋爱之中的野蛮女友——函数的间断点问题 - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/44099721】

4、【聊聊那些烦人的微分中值定理和e^x的泰勒展式的八卦 - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/44017677】

5、【谈谈那些让你头疼的实数基本定理 - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/43692419】

6、【Mathematics student writing:看完这篇文章你会爱上数学! - 王朝阳的文章 - 知乎 https://zhuanlan.zhihu.com/p/38297140】

继续阅读