目录
MATLAB提供了非常丰富的绘图功能,不仅可以用于二维、三维的基本图形绘制,还包括特殊图形、动画制作等多种功能。在本文中,我们将详细介绍MATLAB中的常见绘图种类、特点及使用方法,并列出表格总结各类图形的特征。
一、常见二维图形绘制
-
基础曲线图
-
函数 :
plot(x, y)
-
特点:适用于绘制简单的二维曲线,支持多条曲线、不同颜色和线型。常用于函数关系的可视化。
-
示例 :
Matlabx = linspace(0, 2*pi, 100); y1 = sin(x); y2 = cos(x); plot(x, y1, '-r', x, y2, '--g'); xlabel('x'); ylabel('y'); title('Sine and Cosine functions'); legend('sin(x)', 'cos(x)'); grid on;
-
-
符号函数绘图
-
函数 :
ezplot
-
特点:用于绘制隐函数和参数方程,适用于复杂的数学表达式。
-
示例 :
Matlabezplot('sin(x)', [0, pi]); % 在区间[0, π]上绘制sin(x)
-
-
对数坐标图
-
函数 :
loglog
,semilogx
,semilogy
-
特点:对数图适用于数据跨度较大时,能够更直观地展示数据特性。
-
示例 :
Matlabx = logspace(0, 2, 100); % 生成对数坐标数据 y = exp(x); loglog(x, y, '-o'); grid on;
-
-
散点图
-
函数 :
scatter(x, y, s, c)
-
特点:用于绘制散点图,支持点的颜色和大小自定义。
-
示例 :
Matlabx = rand(1, 100); y = rand(1, 100); scatter(x, y, 50, y, 'filled'); colorbar;
-
-
条形图
-
函数 :
bar
,barh
-
特点:用于显示分类数据的对比,支持横向和纵向的条形图。
-
示例 :
Matlaby = [10, 20, 30]; bar(y);
-
-
饼图
-
函数 :
pie
-
特点:用于表示分类数据的组成部分,常见于展示比例分布。
-
示例 :
Matlabpie([1, 2, 3, 4]);
-
-
等值线图
-
函数 :
contour
,contourf
-
特点:用于显示二维数据的等值线,适用于表示区域中的梯度变化。
-
示例 :
Matlab[X, Y] = meshgrid(-2:0.2:2, -2:0.2:2); Z = X.*exp(-X.^2 - Y.^2); contour(X, Y, Z);
-
二、常见三维图形绘制
-
三维曲线
-
函数 :
plot3(x, y, z)
-
特点:用于绘制空间三维曲线。
-
示例 :
Matlabt = 0:pi/50:10*pi; x = sin(t); y = cos(t); z = t; plot3(x, y, z); grid on;
-
-
三维曲面
-
函数 :
mesh
,surf
-
特点:用于显示三维数据的表面,支持网格图和表面图,适合于绘制复杂的空间数据。
-
示例 :
Matlab[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5); Z = sin(sqrt(X.^2 + Y.^2)); surf(X, Y, Z); shading interp; % 平滑着色
-
-
三维散点图
-
函数 :
scatter3(x, y, z, s, c)
-
特点:用于绘制三维空间中的点,并可以通过颜色和大小表示数据的不同属性。
-
示例 :
Matlabx = rand(1, 100); y = rand(1, 100); z = rand(1, 100); scatter3(x, y, z, 50, z, 'filled'); colorbar;
-
-
瀑布图
-
函数 :
waterfall
-
特点:适用于绘制类似瀑布样式的三维图形。
-
示例 :
Matlab[X, Y] = meshgrid(1:10, 1:10); Z = sin(X) + cos(Y); waterfall(X, Y, Z);
-
-
三维柱形图
-
函数 :
bar3
,bar3h
-
特点:用于展示三维分类数据的分布,支持柱状图的立体展示。
-
示例 :
Matlabdata = rand(5, 5); bar3(data);
-
-
三维等值线图
-
函数 :
contour3
-
特点:用于绘制三维数据的等值线图,显示等值线随高度变化的情况。
-
示例 :
Matlab[X, Y, Z] = peaks; contour3(X, Y, Z);
-
三、图形修饰与处理
-
视角处理
-
函数 :
view
-
特点:调整三维图形的观察视角,改变方位角(azimuth)和仰角(elevation)。
-
示例 :
Matlabview(45, 30); % 设置方位角为45度,仰角为30度
-
-
颜色与着色处理
-
函数 :
colormap
,shading
-
特点 :通过调整色图
colormap
和着色方式shading
来改变图形的视觉效果。 -
示例 :
Matlabcolormap(jet); % 设置颜色映射为'jet' shading interp; % 平滑插值着色
-
-
光照效果
-
函数 :
light
,lighting
-
特点:为三维图形增加光照效果,使其更具立体感。
-
示例 :
Matlablight('Position', [1, 0, 1], 'Style', 'infinite'); lighting phong;
-
-
网格控制
-
函数 :
grid on
,grid off
-
特点:添加或移除图形中的网格线。
-
示例 :
Matlabgrid on; % 显示网格
-
-
多图显示
-
函数 :
subplot
-
特点:将图形窗口分割为多个子图,用于同时展示多个图形。
-
示例 :
Matlabsubplot(2, 2, 1); plot(x, y1); subplot(2, 2, 2); plot(x, y2); subplot(2, 2, 3); plot(x, x.*y1); subplot(2, 2, 4); plot(x, y1./y2);
-
-
保存图像
-
函数 :
saveas
,print
-
特点:将绘制的图形保存为外部文件,如PNG、JPEG、PDF等格式。
-
示例 :
Matlabsaveas(gcf, 'myfigure.png');
-
四、动画制作
-
逐帧动画
-
函数 :
getframe
,movie
-
特点:通过捕捉多帧画面,制作动画并播放。
-
示例 :
Matlabfor k = 1:20 plot(rand(5, 1)); M(k) = getframe; end movie(M, 2); % 播放两次
-
-
轨迹动画
-
函数 :
comet
,comet3
-
特点:用于展示二维或三维空间中的运动轨迹。
-
示例 :
Matlabt = 0:pi/50:10*pi; x = sin(t); y = cos(t); comet3(x, y, t);
-
五、常见绘图种类与特点总结
绘图种类 | 函数 | 特点 |
---|---|---|
二维曲线 | plot |
用于展示函数或数据的变化关系 |
对数坐标图 | loglog |
数据跨度大时更清晰 |
散点图 | scatter |
显示离散点,支持颜色、大小 |
条形图 | bar , barh |
分类数据对比 |
饼图 | pie |
分类数据的组成部分比例展示 |
等值线图 | contour |
显示区域中的梯度变化 |
三维曲线 | plot3 |
空间曲线的展示 |
三维曲面 | surf , mesh |
显示三维数据表面结构 |
三维散点图 | scatter3 |
可在三维空间中展示点 |
瀑布图 | waterfall |
用于展示类似瀑布样式的曲面 |
三维柱形图 | bar3 |
三维柱形数据展示 |
三维等值线图 | contour3 |
显示三维空间的等值线 |
动画 | movie |
制作逐帧动画 |
轨迹动画 | comet , comet3 |
展示运动轨迹 |
总结
MATLAB拥有丰富的绘图工具,从二维到三维的绘图能力,再到图形修饰和动画制作,MATLAB都能提供极大的灵活性。通过合适的函数组合,用户可以创建出复杂且美观的图形。