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 函数只是冰山一角。通过灵活运用这些函数以及它们的各种参数设置,能够创建出各种类型的高质量可视化图形,帮助我们更好地理解和分析数据。在实际应用中,应根据数据特点和分析目的选择合适的绘图方式,以达到最佳的数据可视化效果。

相关推荐
Logintern095 小时前
[Matlab] 遗传算法求解TSP入门
开发语言·matlab
我爱C编程5 小时前
基于BP译码和用户RMA解码的LT码实现及度分布设计matlab实现和误码仿真
matlab·bp译码·rma解码·lt码·度分布
民乐团扒谱机1 天前
【微实验】物理启发神经网络(PINN):当AI学会遵守物理定律(附matlab代码))
人工智能·神经网络·matlab
NoteStream1 天前
MATLAB绘制带置信区间的折线散点图(科研绘图模板)
开发语言·matlab
简简单单做算法1 天前
基于遗传算法和贝叶斯联合优化的BiLSTM(GA-BO-BiLSTM)一维时间序列预测算法matlab仿真
matlab·一维时间序列预测·ga-bo-bilstm·遗传和贝叶斯联合优化
机器学习之心2 天前
MATLAB 实战复盘:集合覆盖模型 + 线性加权和法,搞定应急物流中心选址
matlab·集合覆盖模型·线性加权和法·应急物流中心选址
程高兴2 天前
三相两电平光伏MPPT定步长扰动观察法Simulink
matlab
CAE3202 天前
BPM-Matlab光束传播法光学仿真
matlab·bpm·光束传播法
Evand J3 天前
【MATLAB例程,车联网8】MPC网联车辆节能跟驰控制:速度跟踪、间距约束与能耗优化。附MATLAB完整代码的下载链接
开发语言·matlab·车联网·调度·mpc·节能·车辆控制
阿 才3 天前
Matlab(Simulink)使用详解
运维·网络·matlab