MATLAB精美绘图详解

目录

一、常见二维图形绘制

二、常见三维图形绘制

三、图形修饰与处理

四、动画制作

五、常见绘图种类与特点总结

总结


MATLAB提供了非常丰富的绘图功能,不仅可以用于二维、三维的基本图形绘制,还包括特殊图形、动画制作等多种功能。在本文中,我们将详细介绍MATLAB中的常见绘图种类、特点及使用方法,并列出表格总结各类图形的特征。

一、常见二维图形绘制
  1. 基础曲线图

    • 函数plot(x, y)

    • 特点:适用于绘制简单的二维曲线,支持多条曲线、不同颜色和线型。常用于函数关系的可视化。

    • 示例

      Matlab 复制代码
      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;
  2. 符号函数绘图

    • 函数ezplot

    • 特点:用于绘制隐函数和参数方程,适用于复杂的数学表达式。

    • 示例

      Matlab 复制代码
      ezplot('sin(x)', [0, pi]); % 在区间[0, π]上绘制sin(x)
  3. 对数坐标图

    • 函数loglog, semilogx, semilogy

    • 特点:对数图适用于数据跨度较大时,能够更直观地展示数据特性。

    • 示例

      Matlab 复制代码
      x = logspace(0, 2, 100); % 生成对数坐标数据
      y = exp(x);
      loglog(x, y, '-o');
      grid on;
  4. 散点图

    • 函数scatter(x, y, s, c)

    • 特点:用于绘制散点图,支持点的颜色和大小自定义。

    • 示例

      Matlab 复制代码
      x = rand(1, 100);
      y = rand(1, 100);
      scatter(x, y, 50, y, 'filled');
      colorbar;
  5. 条形图

    • 函数bar, barh

    • 特点:用于显示分类数据的对比,支持横向和纵向的条形图。

    • 示例

      Matlab 复制代码
      y = [10, 20, 30];
      bar(y);
  6. 饼图

    • 函数pie

    • 特点:用于表示分类数据的组成部分,常见于展示比例分布。

    • 示例

      Matlab 复制代码
      pie([1, 2, 3, 4]);
  7. 等值线图

    • 函数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);
二、常见三维图形绘制
  1. 三维曲线

    • 函数plot3(x, y, z)

    • 特点:用于绘制空间三维曲线。

    • 示例

      复制代码
      Matlab 复制代码
      t = 0:pi/50:10*pi;
      x = sin(t);
      y = cos(t);
      z = t;
      plot3(x, y, z);
      grid on;
  2. 三维曲面

    • 函数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; % 平滑着色
  3. 三维散点图

    • 函数scatter3(x, y, z, s, c)

    • 特点:用于绘制三维空间中的点,并可以通过颜色和大小表示数据的不同属性。

    • 示例

      Matlab 复制代码
      x = rand(1, 100);
      y = rand(1, 100);
      z = rand(1, 100);
      scatter3(x, y, z, 50, z, 'filled');
      colorbar;
  4. 瀑布图

    • 函数waterfall

    • 特点:适用于绘制类似瀑布样式的三维图形。

    • 示例

      Matlab 复制代码
      [X, Y] = meshgrid(1:10, 1:10);
      Z = sin(X) + cos(Y);
      waterfall(X, Y, Z);
  5. 三维柱形图

    • 函数bar3, bar3h

    • 特点:用于展示三维分类数据的分布,支持柱状图的立体展示。

    • 示例

      Matlab 复制代码
      data = rand(5, 5);
      bar3(data);
  6. 三维等值线图

    • 函数contour3

    • 特点:用于绘制三维数据的等值线图,显示等值线随高度变化的情况。

    • 示例

      Matlab 复制代码
      [X, Y, Z] = peaks;
      contour3(X, Y, Z);
三、图形修饰与处理
  1. 视角处理

    • 函数view

    • 特点:调整三维图形的观察视角,改变方位角(azimuth)和仰角(elevation)。

    • 示例

      Matlab 复制代码
      view(45, 30); % 设置方位角为45度,仰角为30度
  2. 颜色与着色处理

    • 函数colormap, shading

    • 特点 :通过调整色图colormap和着色方式shading来改变图形的视觉效果。

    • 示例

      Matlab 复制代码
      colormap(jet); % 设置颜色映射为'jet'
      shading interp; % 平滑插值着色
  3. 光照效果

    • 函数light, lighting

    • 特点:为三维图形增加光照效果,使其更具立体感。

    • 示例

      Matlab 复制代码
      light('Position', [1, 0, 1], 'Style', 'infinite');
      lighting phong;
  4. 网格控制

    • 函数grid on, grid off

    • 特点:添加或移除图形中的网格线。

    • 示例

      Matlab 复制代码
      grid on; % 显示网格
  5. 多图显示

    • 函数subplot

    • 特点:将图形窗口分割为多个子图,用于同时展示多个图形。

    • 示例

      Matlab 复制代码
      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);
  6. 保存图像

    • 函数saveas, print

    • 特点:将绘制的图形保存为外部文件,如PNG、JPEG、PDF等格式。

    • 示例

      Matlab 复制代码
      saveas(gcf, 'myfigure.png');
四、动画制作
  1. 逐帧动画

    • 函数getframe, movie

    • 特点:通过捕捉多帧画面,制作动画并播放。

    • 示例

      Matlab 复制代码
      for k = 1:20
          plot(rand(5, 1));
          M(k) = getframe;
      end
      movie(M, 2); % 播放两次
  2. 轨迹动画

    • 函数comet, comet3

    • 特点:用于展示二维或三维空间中的运动轨迹。

    • 示例

      Matlab 复制代码
      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都能提供极大的灵活性。通过合适的函数组合,用户可以创建出复杂且美观的图形。

相关推荐
Kisorge1 小时前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味2 小时前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学3 小时前
QT-简单视觉框架代码
开发语言·qt
威桑3 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服3 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans3 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Chinese Red Guest4 小时前
python
开发语言·python·pygame