概述
本次的内容涉及到除了线图以外的绘图,包括离散绘图、极坐标绘图、曲面绘图和统计绘图。
- 离散绘图:茎干图、阶梯图和散点图
- 极坐标绘图:polar前缀
- 曲面绘图:surf 曲面图和 mesh 网格图
- 统计绘图:条形图、统计直方图和饼状图
子窗口
subplot 函数指的是将当前图窗划分为 m
×n
网格,并在编号 p
指定的位置创建坐标区。
编号规则为:从第一行自左向右递增。
1 | % subplot(m,n,p); |
离散绘图
茎干图(stem)
stem 函数的功能是描述离散数据中的冲激函数,以绘图高度反映一维离散序列中脉冲的强度。
数据值对应每一个脉冲的强度。
1 | figure(1) |
阶梯图(stairs)
stairs 函数的功能是描述离散数据中的阶跃函数,以绘图高度反映一维阶跃信号中的实时强度。
数据值为每一个时间周期的高度。
1 | X = linspace(0,4*pi,40); |
散点图(scatter)
scatter 函数绘制二维平面上的散点图,也就是不绘制曲线的 plot 函数。
输入参数为散点图的横坐标序列和纵坐标序列。
1 | x = linspace(0,3*pi,200); |
极坐标绘图
我们直到直角坐标和极坐标系都是常用的坐标系,并且两种坐标系之间存在一定的转换关系,但是用 plot 函数绘制转换后的极坐标系图形总是不美观。
polar 函数是 MATLAB 中用于绘制极坐标图的函数。
polar 函数已经被 MATLAB 官方更替,更推荐使用的是新的函数方法:polarplot (新方法在旧版本的 MATLAB 如 2015b 版本仍不可用)。因此如果你在使用旧版本软件,使用 polar 方法;如果你在使用的版本支持 polarplot 函数,那就使用 polarplot 函数。
polarplot 函数就是极坐标系下的 plot 函数。以 polarplot(theta,rho) 形式调用。
1 | theta = 0:0.01:2*pi; % 角度 |
同理,也有 polarscatter 函数。
曲面绘图
曲线上的点是无限的,于是计算机用散点序列代替直线;曲面上由无数曲线构成,自然类比想到使用网格代替平面。
surf 函数
surf 函数将创建一个三维曲面图。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度;此外,函数将对三维曲面进行渲染,每个区域的颜色与高度成比例。
1 | x0 = 1:0.5:10; |
其他 surf 类型曲面图函数
- surfc 函数:在 surf 函数的基础上,在底部绘制等高线图。
- surfl 函数:在 surf 函数的基础上,用光线为三维图渲染。
mesh 函数
surf 函数将创建一个三维曲面图。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度;函数仅对于三维网格进行渲染,每个区域的颜色与高度成比例。
1 | [X,Y] = meshgrid(-8:.5:8); |
其他 mesh 类型曲面图函数
- meshc函数:在 mesh 函数的基础上,在底部绘制等高线图。
- meshz 函数:在 mesh 函数的基础上,每个网格高度以柱状反映。
统计绘图
bar 函数
bar 函数顾名思义是绘制条形图的函数。
由于统计图表有着多种形式的表现需求,这里使用子窗口绘图来实现。
1 | x = 190:1:200; |
其他 bar 类型函数:
- bar3 函数:绘制三维条形图
- barh 函数:绘制水平条形图
- bar3h 函数:绘制三维水平条形图
histogram 函数
histogram 函数的功能是根据传入的数据绘制统计直方图。
1 | x = randn(10000,1); |
其他 histogram 函数:
- histogram2 函数:绘制二元统计直方图;
- pareto 函数:绘制帕累托图
- polarhistogram 函数:在极坐标系上绘制根据角度绘制分布图
pie 函数
pie 函数的功能是根据传入的比例序列绘制饼状图。
特别地:如果 pie(x) 中,
- sum(x) < 1,仅绘制部分饼状图。
- sum(x) > 1,先做归一化后绘制饼状图。
1 | figure(1); |
其他 pie 类型函数:
- pie3 函数:绘制三维饼状图;
其他可视化绘图
这部分内容极少使用,不需要在意。
heatmap 函数:根据数据集绘制热图;
wordcloud 函数:使用文本数据创建词云图;
geobubble 函数:以可视方式呈现特定地理位置的数据值
小结
本节中提到除了线图以外的另外四种常见绘图:离散绘图、极坐标绘图、曲面绘图和统计绘图。
值得一提的是,对于极坐标绘图的函数方法,官方已经给出更佳的更新,但旧版本中无法应用,这里给出的为新版本的方案。