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

相关推荐
北 染 星 辰20 分钟前
Python--TCP/UDP通信
开发语言·python
zhooyu39 分钟前
C++和OpenGL实现3D游戏编程【目录】
开发语言·游戏·游戏程序
小ᶻᶻᶻᶻ40 分钟前
从零开始搭建 PHP
开发语言·php
oliveira-time1 小时前
C++ prime plus课后习题-第二章
开发语言·c++·算法
0点51 胜1 小时前
[ffmpeg]音频格式转换
开发语言·c++·ffmpeg
水木流年追梦1 小时前
【python因果推断库16】使用 PyMC 模型进行回归拐点设计
开发语言·python·回归
只想摆烂@2 小时前
C# winfrom 如何多窗体优雅的回调方法
开发语言·c#
西猫雷婶2 小时前
python画图|中秋到了,尝试画个月亮(球体画法)
开发语言·python
星迹日2 小时前
C语言:结构体
c语言·开发语言·经验分享·笔记
会敲代码的小张2 小时前
设计模式-观察者模式
java·开发语言·后端·观察者模式·设计模式·代理模式