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