第七章:MATLAB:图形标注(坐标轴,图形注释,统计图形,离散数据图形,向量图形,综合示例)
一.坐标系与坐标轴1.坐标系的调整:注意,一般情况下,matlab会根据要绘制的曲线数据范围自动选择合适的坐标系,因此用户不必自己选择绘图坐标系,但是,如果用户觉得自动选择的坐标不合适,可以利用axis()函数来选择新的坐标系;调用格式:axis(xmin,xmax,ymin,ymax,zmin,zmax),注意:输入的参数可以是4个,也可以是6个,(相应的最小值一定要小于最大值)2.坐标...
第七章:MATLAB:图形标注
图形可以帮助人们等好的理解庞大的数字数据,直接转换成为直观结果,数值计算和符号计算无论多么正确,都无法从大量的数值与符号之中感受和分析出结果的内在本质,绘图可以很好的将各种数据表现出来
7.1. 图形属性设置
7.1.1. 坐标系与坐标轴
1.坐标系的调整:
注意,一般情况下,matlab会根据要绘制的曲线数据范围自动选择合适的坐标系,因此用户不必自己选择绘图坐标系,但是,如果用户觉得自动选择的坐标不合适,可以利用axis()函数来选择新的坐标系;
2.坐标轴控制:
axis命令用于控制坐标轴的长度,刻度,显示等特征,调用有多种格式;
实例:演示坐标系与坐标转换
7.1.2. 图形注释:
MATLAB中提供了一些图形标注函数,为图形添加标题,为坐标轴添加标注,为图形添加图例,把说明注释文本放在图形的任何位置;
1)填充图形:
例:绘制填充正弦图形:
2)注释图形标题和轴名称:
title命令用于给对象加标题
对坐标抽进行标注
3. 图形标注
在给所绘得的图形进行详细的标注,最常用的两个命令就是text和gtext,他们均可以在图形的具体部位进行标注
4.text命令:
上表中的这些命令与上面一样,可以通过get命令来进行查看,用set命令来进行修改
实例:基于正弦函数图形
5.gtext命令:
gtext命令可以让用户在图形的任意位置进行标注
实例:倒数函数图形
6.图例标注:
当在一幅图中出现多种图线的时候,用户可以根据自己的需要,利用legend命令来对不同的图例进行说明,图形标注是很有意义的
7.分割线控制:
为了使图像的可读性增强,我们使用grid命令给二维或者三维图形的坐标面增加分割线
也有很多种不同的调用格式:
注意区分一下:hold on 与grid on
7.2. 特殊图形:
为了满足用户的各种需求,matlab提供了绘制条形图,面积图,饼图,火柴图等特殊图形的命令
7.2.1. 统计图形
1.条形图:
分为二维和三维的情况,
2.面积图:
面积图在实际应用之中可以表现不同部分对整体的影响,绘图命令是area
3.饼图:
饼图用来显示向量或者矩阵之中个元素所占的比例,将统计数据可视化,
1)二维绘图命令是pic,
2)三维绘图命令是pic3
二者调用格式十分相似:
实例:绘制矩形图形
4.柱状图:
柱状图是数据分析之中用的很多的一类图,绘制命令有两条:
两者的命令调用格式如下所示:
实例:各个季度所占盈利总额的比例统计图
实例:绘制饼状图
创建服从高斯分布的数据柱状图,再将这些数据分到范围为指定的若干个相同的柱状图中和极坐标系下的柱状图
7.2.2. 离散数据图形:
除了上面所提到的统计图形外,还提供了一些在工程计算上常用的离散数据模型
1.误差棒图
绘图命令是errorbar,也存在很多不同的调用格式
横向显示的是y的每一个元素编号,第1个,第2个,等等,都是编号,
误差棒的中点对应纵轴就是y的每一个元素具体值,误差棒的下方或者上方总有一个值对应x的相应位置的元素,误差棒的总长度就是二倍的误差值,误差棒的一半才是真正的误差。
2.火柴杆图:
用线条表示数据点与x轴的距离,用一小圆圈或者其他指定的符号与线条项链,就是火柴杆图,
1)二维条件下的调用指令是stem,
2)三维条件下的调用指令是stem3,
实例:绘制三维火柴杆图
3.阶梯图:
实例:绘制阶梯图
7.2.3. 向量图形:
由于物理等学科的需要,在实际中有时会需要绘制一些带方向的图形,即向量图,MATLAB中也可以解决这个需求
1.罗盘图:
罗盘图即为起点为坐标原点的二维或者三维向量,同时还会有分割线显示,
绘图命令是compass,调用格式有很多
2.羽毛图:
在横坐标上等距地显示向量的图形,看起来就像鸟的羽毛一样,绘制的命令是feather,调用格式也有很多。
实例:罗盘图与羽毛图
3.箭头图:
箭头的方向即为向量的方向,箭头的长短代表向量的大小,
1)quiver绘制二维图形;
2)quiver3绘制三维图形;
实例:绘制箭头图形
7.3. 综合示例–部门工资统计图分析:
对某部门的工资情况进行分类汇总,利用统计功能的图形功能便于分析各部门工资的平均水平,包括基本工资和实发工资
步骤1)创建统计工资对应的矩形
clear
>> %创建统计工资对应的矩形
jb=[800;685;685;613;800;613;800;685;613;613;800;685;613;613;685;613] %基本工资统计
jb =
800
685
685
613
800
613
800
685
613
613
800
685
613
613
685
613
>> jj=[700;700;600;600;700;700;700;700;600;600;700;600;600;600;700;600]; %奖金统计
zf=[130;100;100;100;130;100;130;100;100;100;130;100;100;100;130;100]; %住房基金统计
bx=100*ones(16) ;
bx=bx(:,1) %保险统计
bx =
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
>> SF=jb+jj+zf+bx %实发工资结果
SF =
1730
1585
1485
1413
1730
1513
1730
1585
1413
1413
1730
1485
1413
1413
1615
1413
>> Z=[jb jj zf bx SF] %工资清单统计结果
Z =
800 700 130 100 1730
685 700 100 100 1585
685 600 100 100 1485
613 600 100 100 1413
800 700 130 100 1730
613 700 100 100 1513
800 700 130 100 1730
685 700 100 100 1585
613 600 100 100 1413
613 600 100 100 1413
800 700 130 100 1730
685 600 100 100 1485
613 600 100 100 1413
613 600 100 100 1413
685 700 130 100 1615
613 600 100 100 1413
>>
步骤2)绘制条形图:
%绘制条形图
subplot(2,3,1)
bar(Z)
title('二维条形图')
subplot(2,3,2)
bar3(Z),title('三维条形图')
步骤3)绘制面积图:
%绘制饼形图
subplot(2,3,3)
area(Z)
grid on
colormap summer
set(gca,'layer','top')
title('面积图')
步骤4)对工资多少进行排序:
%对工资多少进行排序
max(Z) %求最大值
ans =
800 700 130 100 1730
sort(Z) %从小到大排列工资单
ans =
613 600 100 100 1413
613 600 100 100 1413
613 600 100 100 1413
613 600 100 100 1413
613 600 100 100 1413
613 600 100 100 1413
613 600 100 100 1485
685 600 100 100 1485
685 700 100 100 1513
685 700 100 100 1585
685 700 100 100 1585
685 700 130 100 1615
800 700 130 100 1730
800 700 130 100 1730
800 700 130 100 1730
800 700 130 100 1730
mad(Z) %求绝对差分平均值
ans =
60.5938 50.0000 12.8906 0 114.2031
M=range(Z) %求工资差
M =
187 100 30 0 317
步骤5)绘制饼形图:
%绘制饼形图
subplot(2,3,4)
pie(M)
title('二维饼图')
subplot(2,3,5)
explode=[0 0 0 1 1];
pie3(M,explode)
title('三维分离饼图')
%绘制柱状图
subplot(2,3,6)
hist(M)
title('高斯分布柱状图')
程序完整代码:
%创建统计工资对应的矩形
jb=[800;685;685;613;800;613;800;685;613;613;800;685;613;613;685;613] %基本工资统计
jj=[700;700;600;600;700;700;700;700;600;600;700;600;600;600;700;600]; %奖金统计
zf=[130;100;100;100;130;100;130;100;100;100;130;100;100;100;130;100]; %住房基金统计
bx=100*ones(16) ;
bx=bx(:,1) %保险统计
SF=jb+jj+zf+bx %实发工资结果
Z=[jb jj zf bx SF] %工资清单统计结果
%绘制条形图
subplot(2,3,1)
bar(Z)
title('二维条形图')
subplot(2,3,2)
bar3(Z),title('三维条形图')
%绘制饼形图
subplot(2,3,3)
area(Z)
grid on
colormap summer
set(gca,'layer','top')
title('面积图')
%对工资多少进行排序
max(Z) %求最大值
sort(Z) %从小到大排列工资单
mad(Z) %求绝对差分平均值
M=range(Z) %求工资差
%绘制饼形图
subplot(2,3,4)
pie(M)
title('二维饼图')
subplot(2,3,5)
explode=[0 0 0 1 1];
pie3(M,explode)
title('三维分离饼图')
%绘制柱状图
subplot(2,3,6)
hist(M)
title('高斯分布柱状图')
更多推荐
所有评论(0)