【Matlab】第五章 图形绘制_特殊图形的绘制:柱状图和饼状图 、三维图形

第五章 图形绘制(二)

特殊图形的绘制

1. 柱状图

matlab中主要有四个函数用于绘制条形图

	bar() 	%绘制纵向的二维柱状图
	barh()	%绘制横向的二维柱状图
	bar3()	%绘制三维纵向条形图
	bar3h()
语法格式
  • bar(y)
  • bar(x,y)
  • bar(…,width)
  • bar(…,‘style’)
    ‘style’的取值为’grouped’ or ‘stacked’
    - grouped: 绘制的图形共有 m组,m为矩阵y的行数,每一组有n个条形,n为矩阵的列数,y的每一个元素对应一个条形。
    - stacked: 绘制的图形共有m个条形,每个条形为第m行的n个元素的和,每个条形由n种颜色构成,每种颜色对应一种元素。
  • bar(…,‘bar_color’)

e.g:

close all
clear
y1 = 100*rand(5,3)  
subplot(211)
bar(y1,'grouped');
subplot(212)
bar(y1,'stacked','p',1)

consequense:
在这里插入图片描述

2.饼状图

饼状图是一种统计图形,通常用于显示每个元素占总体的百分比。在统计学中应用很频繁

语法格式
  • pie(x)
    • 绘制x的饼状图,每一个元素占一个扇形。
    • 上方 正中开始,逆时针为序
    • 元素的和 超过1:按照百分比绘制
    • 元素的和 不足1:不完整的饼
  • pie(x,explode)
    • 设置相应的扇形偏移
    • 用于突出显示
    • explode为[ 0 1 0 0 1…]与x对应,1对应的扇形会从图形中偏离
  • pie( x, …, labels)
    • 标注图形
    • labels为元素为字符串的单元数组,元素个数与 x一致

pie3( )和 pie用法一致

我们来画几个饼~
e.g

close all
clear
x=[2,4,8,3];explode = [0 1 0 0 ];
subplot(211)
pie(x,explode)

subplot(212)
labels={'教授','副教授','讲师','助教'};
pie3(x,explode,labels) 
colormap autumn

consequence
在这里插入图片描述
colormap是颜色色系,不仅可以在饼状图中应用,也可以 在后文的三维图形中应用
可以直接在Matlab中搜索
在这里插入图片描述拖到比较下面就可以看到了:有很多选择~
在这里插入图片描述

3.三维图形的绘制

常用的函数有:

  • 三位线图 plot3()
  • 三维网线图 mesh()
  • 三维曲面图 surf()
1,绘制三维曲线plot3()

用法基本和plot()一样,我们着重学习后文的mesh和surf,这里我们就 看一个例子就好。

close all
t = 0:pi/50 : 20*pi;
subplot(211)
plot3(sin(t), cos(2*t), sin(t) + cos(t),'-r' )
subplot(212)
plot3(sin(2*t),cos(t),2*cos(3*t) , ':b')

consequence
在这里插入图片描述

2,mesh()

mesh()可以绘制出某一区间的完整的网格曲面

  • mesh(z)可以 给出矩阵z元素的三位消隐图
    • 网格表面由z定义
    • 用来显示其他方式难以输出的包含大量数据的大型矩阵
语法格式
mesh(X,Y,Z);
  • 绘制出一个曲面的网格图
  • 图像的颜色取决于Z(与高度成正比)
    - 如果:
    -X,Y都是向量
    -length(X) = n,length(Y) = m,size(Z) = [m,n]
    则:X(j), Y(i), Z(i,j)是绘制的图形中的各个结
mesh(Z) , surf(Z);
  • 使用X = 1:n和Y = 1:m,[m,n] = size(Z),高为z
  • 它是一个单值函数,图像的颜色与高度Z成正比
  • Z的元素为z坐标,元素对应的矩阵行和列分别为x坐标和y坐标
% 建立行向量x,列向量y:
x = -8 : 0.5 :8;
y = x' ;
% 第1条语句x的赋值为定义域,在其上估计函数、建立行向量x;
% 第2条语句建立列向量y。

% 生成X矩阵:按向量y的长度建立1_矩阵
X = ones( size(y) ) * x;
%生成Y矩阵:建立一个33 × 33重复列的Y矩阵,每列均为向量y
Y = y * ones( size(y) ) ' ;   %产生Y的响应
%生成三维网格曲面图:
R = sqrt( X.^2 + Y.^2 ) + eps ; %计算各网格点的半径
Z = sin(R) ./ R; %计算函数值矩阵Z。
mesh( Z )

该程序运行后得到三维网格曲面图。
 Figure1

3,surf()

surf()函数也是MATLAB中常用的三维绘图函数
其一般调用格式如下:

surf(x,y,z);

  • 该函数输入参数的设置与mesh()相同 ;
  • 不同的是mesh()函数绘制的是一网格图 ;
  • 而surf()函数绘制的是着色的三维表面。

在这里插入图片描述

4,meshgrid( )

为3D绘图生成X、Y矩阵。meshgrid()仅限于二维或三维Cartesian空间,meshgrid()更适合在二维或三维Cartesian空间解决问题
meshgrid()函数的语法如下:

[X,Y] = meshgrid(x,y);
  • 把向量x和y指定的域转换成矩阵X、Y
  • 用来实现两个变量和三维mesh()、surface()绘图的功能
  • 输出矩阵X的行复制于向量x
  • 输出矩阵Y的列复制于向量y。
[X,Y] = meshgrid(x)
  • 等同于 [X,Y] = meshgrid(x,x)。
[X,Y,Z] = meshgrid(x,y,z)
  • 三维矩阵用来实现三个变量和三维立体绘图的功能。

EXAMPLE:

% 上例中的前4行用meshgrid()函数代替。
[X, Y]=meshgrid(-8:0.5:8) 
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(Z)

RESULT
在这里插入图片描述

4,meshc( )

meshc()&mesh()的调用方式相同,只是该函数在mesh的基础上增加了绘制等高线的功能
EXAMPLE

[x,y] = meshgrid ( [-4: 0.5 :4] );
z = sqrt(x.^2 + y.^2);	
% sqrt():求算数平方根
figure
meshc(z)

RESULT

在这里插入图片描述

5,meshz()

meshz()&mesh()的调用方式也相同,
该函数增加了z轴铅垂线

EXAMPLE

[x,y] = meshgrid( [ -4 : 0.5 : 4] );
z = sqrt(x.^2 + y.^2 );
figure
meshz(z)

在这里插入图片描述

6,彗星图

彗星图: 状如彗星的动画图。
其中:彗星头跟踪数据点的变化
彗星尾是彗星头后动态画出的拖曳(跟踪整个函数的实线)

调用:

comet(y);
  • 显示向量y的彗星图
comet(x,y);
  • 显示向量y相当于x的彗星图
comet(x,y,p);
  • 指定彗星拖尾长度为:p*length(y)
  • p默认值为1
comet3(z), comet3(x,y,z),comet(x,y,z,p)
  • 绘制3D彗星图

EXAMPLES:

t = 0: 0.01 :2*pi;
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
comet(y)
figure
comet(x,y)
comet(x,y,t)

RESULTS
comet(y):
	comet(y)
comet(x,y)
comet(x,y)
comet3(x,y,t)
comet3(x,y,t)

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值