matlab绘图常见函数及代码

一、引言

在科学研究、工程实践以及数据分析等众多领域,数据可视化至关重要。MATLAB作为一款强大的数学计算和编程软件,提供了丰富多样的绘图函数和工具,能够将枯燥的数据转化为直观、富有洞察力的图形。本文将深入探讨MATLAB中几种常见的画图程序,帮助读者全面掌握数据可视化的技巧。

二、二维绘图基础------plot函数

2.1 简单折线图绘制

plot 函数是MATLAB中绘制二维折线图的基础函数。其最基本的调用格式为 plot(x,y) ,其中 x 和 y 是长度相同的向量。例如:

matlab

x = 1:10;

y = x.^2;

plot(x,y);

上述代码中, x 向量从1到10, y 向量是 x 中各元素的平方。执行 plot(x,y) 后,MATLAB会在坐标系中依次连接 (x(i),y(i)) 这些点,形成一条折线。

2.2 线条属性设置

plot 函数支持对线型、颜色和标记等属性进行设置。例如,要绘制红色虚线并带有圆形标记的折线,可以使用:

matlab

x = 1:10;

y = x.^2;

plot(x,y,'--ro');

这里 '--ro' 中, -- 表示虚线线型, r 表示红色, o 表示圆形标记。还可以通过 set 函数进一步设置线条的线宽等属性,如:

matlab

h = plot(x,y,'--ro');

set(h,'LineWidth',2);

2.3 多组数据绘制

在一个图形中绘制多组数据,可以在 plot 函数中依次列出多组 (x,y) 对。例如:

matlab

x = 1:10;

y1 = x;

y2 = x.^2;

y3 = x.^3;

plot(x,y1,x,y2,x,y3);

这样就会在同一坐标系中绘制出三条不同的曲线。为了区分不同曲线,还可以添加图例:

matlab

x = 1:10;

y1 = x;

y2 = x.^2;

y3 = x.^3;

plot(x,y1,x,y2,x,y3);

legend('y = x','y = x^2','y = x^3');

三、柱状图绘制------bar函数

3.1 垂直柱状图

bar 函数用于绘制垂直柱状图。其基本调用格式为 bar(x,y) ,其中 x 可以是向量或标量, y 是向量。例如:

matlab

x = 1:5;

y = 10 20 15 25 30;

bar(x,y);

上述代码会以 x 中的值为横坐标, y 中的值为高度绘制垂直柱状图。

3.2 水平柱状图

若要绘制水平柱状图,可使用 barh 函数,调用格式与 bar 类似。例如:

matlab

x = 1:5;

y = 10 20 15 25 30;

barh(x,y);

3.3 分组柱状图与堆叠柱状图

对于多组数据,可以绘制分组柱状图或堆叠柱状图。绘制分组柱状图时, y 是一个矩阵,每列对应一组数据。例如:

matlab

x = 1:3;

y = 10 20 30; 15 25 35; 20 30 40;

bar(x,y);

而绘制堆叠柱状图,只需将 bar 函数替换为 barstacked 函数:

matlab

x = 1:3;

y = 10 20 30; 15 25 35; 20 30 40;

barstacked(x,y);

四、散点图绘制------scatter函数

4.1 基本散点图绘制

scatter 函数用于绘制散点图,其基本格式为 scatter(x,y) 。例如:

matlab

x = randn(100,1);

y = randn(100,1);

scatter(x,y);

这里生成了100个服从标准正态分布的随机数对 (x,y) ,并绘制出散点图。

4.2 散点大小与颜色设置

可以通过额外参数设置散点的大小和颜色。例如,根据第三组数据来设置散点大小,根据第四组数据来设置颜色:

matlab

x = randn(100,1);

y = randn(100,1);

s = abs(randn(100,1)) * 50; % 散点大小

c = randn(100,1); % 颜色

scatter(x,y,s,c);

五、三维绘图------plot3函数与surf函数

5.1 三维折线图------plot3函数

plot3 函数用于绘制三维空间中的折线图,调用格式为 plot3(x,y,z) ,其中 x 、 y 、 z 是长度相同的向量。例如:

matlab

t = 0:0.1:2*pi;

x = sin(t);

y = cos(t);

z = t;

plot3(x,y,z);

这段代码会在三维空间中绘制出一条螺旋线。

5.2 三维曲面图------surf函数

surf 函数用于绘制三维曲面图。首先需要生成网格数据,通常使用 meshgrid 函数。例如:

matlab

x,y = meshgrid(-2:0.1:2);

z = x.^2 + y.^2;

surf(x,y,z);

上述代码在 x 、 y 范围为-2, 2,步长为0.1的网格上,计算函数 z = x^2 + y^2 的值,并绘制出三维曲面。

六、极坐标图绘制------polarplot函数

6.1 基本极坐标图绘制

polarplot 函数用于绘制极坐标图,基本调用格式为 polarplot(theta,r) ,其中 theta 是极角(弧度), r 是极径。例如:

matlab

theta = 0:0.01:2*pi;

r = sin(2*theta).*cos(2*theta);

polarplot(theta,r);

此代码绘制出一个特定形状的极坐标图形。

6.2 极坐标图属性设置

可以像二维绘图一样设置极坐标图的线条、标记等属性。例如:

matlab

theta = 0:0.01:2*pi;

r = sin(2*theta).*cos(2*theta);

polarplot(theta,r,'--ro');

七、总结

MATLAB的绘图功能极其丰富,本文介绍的 plot 、 bar 、 scatter 、 plot3 、 surf 和 polarplot 函数只是冰山一角。通过灵活运用这些函数以及它们的各种参数设置,能够创建出各种类型的高质量可视化图形,帮助我们更好地理解和分析数据。在实际应用中,应根据数据特点和分析目的选择合适的绘图方式,以达到最佳的数据可视化效果。

相关推荐
Evand J10 小时前
【MATLAB例程】VSIMM与IMM在机动目标跟踪中的性能对比,CV+CT双模型
开发语言·matlab·目标跟踪
chao18984411 小时前
基于SIFT和SURF特征的图像配准(MATLAB)
开发语言·matlab
foundbug99911 小时前
最优化问题的外点罚函数法与内点罚函数法-MATLAB实现
开发语言·matlab
jghhh0111 小时前
MATLAB蒙特卡罗方法求解伊辛模型
数据库·人工智能·matlab
Deep-w12 小时前
【MATLAB】基于模型预测控制的自适应巡航车辆过渡工况安全控制研究
开发语言·人工智能·算法·机器学习·matlab
Evand J12 小时前
【MATLAB程序】基于σ修正自适应律的多无人机菱形编队控制仿真,附下载链接
开发语言·matlab·无人机·控制·编队飞行·多uav
可编程芯片开发13 小时前
基于小波变换层次化编码的遥感图像加密算法matlab仿真
matlab·小波变换·遥感图像加密·层次化编码
yong999014 小时前
基于MATLAB的雷达数字信号处理
开发语言·matlab·信号处理
Deep-w14 小时前
【MATLAB】微电网四DG逆变器下垂策略与分布式MPC协同控制仿真分析
开发语言·分布式·算法·matlab
guygg881 天前
最大相关-最小冗余(mRMR)特征选择 MATLAB 实现
开发语言·matlab