当前位置: 首页 > news >正文

【数学建模 | Matlab】二维绘图 和 三维绘图

- 第 115 篇 -
Date: 2025 - 07 - 23
Author: 郑龙浩(仟墨)

续写上一篇,如下文章:
【数学建模|Matlab】Matlab「基础知识」和「基础操作」

五 二维绘图

1 举例

% 二维平面绘图(扩展至 -2π 到 2π)
x = -2*pi:0.01:2*pi;  % x范围扩展为[-2π, 2π]% 绘制基础正弦函数
y = sin(x);figure % 建立画布
plot(x, y, 'b', 'LineWidth', 1.5)  % 蓝色实线,线宽1.5
title('y = sin(x)')
xlabel('x ')
ylabel('sin(x)')
% 如果不写这一行的话,在两侧留空白(如显示 [-1, 7] 而非 [0, 6.28]),而写了范围后就是[-1,7]
xlim([-2*pi 2*pi])  % 设置x轴范围(将x显示范围限制在这个区间)
grid on  % 添加网格线

3D sin 图像 郑龙浩

2 各种参数设置

① 颜色

颜色字符颜色字符
r粉红m
绿gc
bw
yk

② 线型

线型符号正确示例MATLAB显示效果
实线-————————————————连续无间隔的直线
虚线--—— —— —— —— ——中等长度线段+中等间隔
冒号线:··············紧密排列的小点
点画线-.—·—·—·—·—·—·—·—·交替的长线段和圆点

③ 标记点类型

符号点类型示例符号点类型示例
·····^上三角△△△△
+十字号++++v下三角▽▽▽▽
o圆圈○○○○<左三角◁◁◁◁
*星号****>右三角▷▷▷▷
x叉号××××p五角星☆☆☆☆
s正方形□□□□h六角星⬡⬡⬡⬡
d菱形◇◇◇◇

3 双y轴绘图 yyaxis

yyaxis 的核心是左右Y轴切换其余操作与普通 plot 一致。

任务:

绘制双Y轴图形,左侧为 y1 = 0.5*exp(-x)(绿色实线),右侧为 y2 = 100*log(x+1)(黑色点线),并添加网格和图例。

人话就是:左侧Y轴是绿色实线的指数函数图像的,右侧Y轴是黑色电线的对数图像的

x = 0:0.1:5;
y1 = exp(-x);
y2 = log(x+1);figure;
yyaxis left;
plot(x, y1, 'g-', 'LineWidth', 1.5);
ylabel('exp(-x)'); % 左侧Y轴的名字yyaxis right;
plot(x, y2, 'k:', 'LineWidth', 2);
ylabel('ln(x+1)'); % 右侧Y轴的名字

图像

3D 指数函数+对数函数 郑龙浩

六 三维绘图

1 基本介绍

绘制二维图用的是plot(),绘制三维图用的是plot3

plot3(X, Y, Z, '参数')

属性的话,可以写到一起,不是必须得分开的

plot3(x, y, z, 'r--0') % 意思就是红色虚线原点标记三维图像

当然,生成三维图像不是只可以从一个角度看,可以进行旋转,从多个角度去观看

2 用view()去调整

1)简单介绍

当然也可以用view(n,m)去观察角度

n 表示的是方位角

m 表示的是仰角

角度都是°

2)view(30, 30)举例来说明

第一个 30:方位角

  • 定义:观察者绕 Z 轴(垂直屏幕的轴)逆时针旋转的角度
    • :正对 X 轴正方向(从正前方看)
    • 90°:正对 Y 轴正方向(从右侧看)
    • 30°:介于正前方和右侧之间的斜视角。
  • 类比:像人站在物体周围 水平移动(左右转头)

2. 第二个 30:仰角

  • 定义:观察者相对于 XY 平面(水平面)的俯仰角度。
    • :平视(视线与 XY 平面平行)。
    • 90°:正上方俯视(鸟瞰图)。
    • 30°:轻微俯视(视线从斜上方看向物体)。
  • 类比:像人 抬头或低头 看物体。

3. view(30, 30) 的视觉效果

  • 方位角 30°:视角从正前方偏右 30° 方向观察。
  • 仰角 30°:视线从斜上方 30° 向下看。

常用视角如下

代码视角描述适用场景
view(0, 90)正上方俯视(只看 XY 平面)二维数据的热力图
view(0, 0)平视(沿 X 轴)侧视轮廓分析
view(30, 30)斜向上 30° 看展示三维立体效果(默认)
view(-37.5, 30)MATLAB 默认三维视角通用三维图形

3 举例

① 三维直线

红色+圆圈+实线

X = [1, 2];  % X坐标
Y = [1, 3];  % Y坐标
Z = [1, 4];  % Z坐标plot3(X, Y, Z, 'ro-', 'LineWidth', 2);  % 红色圆圈标记+实线
xlabel('X'); 
ylabel('Y'); 
zlabel('Z');
title('3D 直线');
grid on;

3D 直线 郑龙浩1
3D 直线 郑龙浩2

② 3D 螺旋线图

t = 0:0.1:10*pi;  % 参数 t
x = sin(t);
y = cos(t);
z = t;plot3(x, y, z, 'b:', 'LineWidth', 1.5);
xlabel('X'); 
ylabel('Y'); 
zlabel('Z');
title('3D 螺旋线图');
grid on;
view(30, 30);  % 调整视角

3D 螺旋线 郑龙浩

③ 3D 散点图

rng(0);  % 固定随机数种子
X = rand(20, 1);  % 20个随机X坐标
Y = rand(20, 1);  % 20个随机Y坐标
Z = rand(20, 1);  % 20个随机Z坐标plot3(X, Y, Z, 'b.', 'MarkerSize', 20);
xlabel('X'); ylabel('Y'); zlabel('Z');
title('3D 散点图');
grid on;
view(30, 30)

3D 散点图 郑龙浩

http://www.dtcms.com/a/293596.html

相关文章:

  • 2025年7月一区SCI-投影迭代优化算法Projection Iterative Methods-附Matlab免费代码
  • kotlin基础【1】
  • MATLAB 2024b深度学习新特性全面解析与DeepSeek大模型集成开发技术
  • android studio(NewsApiDemo)100%kotlin
  • 如何在 npm 上发布 Element Plus 二次封装组件
  • Oracle 常用 SQL 命令集合
  • 将 `knife4j` 和 `springdoc-openapi` 集成到你的 Spring Boot 应用
  • 微软Fabric重塑数据管理:Forrester报告揭示高ROI
  • 一次Oracle集群脑裂问题分析处理
  • 前端实现类浏览器的 Ctrl+F 全局搜索功能(Vue2 + mark.js,用于Electron 、QT等没有浏览器Ctrl+F全局搜索功能的壳子中)
  • Oracle迁移到高斯,查询字段默认小写,解决办法
  • Qt 常用控件 - 1
  • 分布式风电分散式风电
  • Qt内存管理的核心点
  • 技术速递|使用 Semantic Kernel 与 A2A 协议构建多智能体解决方案
  • MCP:UVX的安装
  • 计算机组成原理(一)
  • 架构师--缓存场景
  • 利用DeepSeek编写一个使用lzav算法的文件压缩工具
  • 什么是LLMs.txt?如何在线生成?robots.txt一键转LLMs.txt
  • 第九讲:C++中的list与forward_list
  • OpenCV 零基础到项目实战 | DAY 2:图像预处理全解析
  • 基于STM32驱动ADS1118实现电压采样并输出到串口
  • PetaLinux 使用技巧与缓存配置
  • 从零搭建 OpenCV 项目(新手向)-- 第二天 OpenCV图像预处理(一)
  • 第四章 Freertos物联网实战DHT11温湿度模块
  • 嵌入式学习-(李宏毅)机器学习(1)-day28
  • 本地电脑映射端口到外网访问的开启方法和注意事项,内网服务提供跨网使用简单操作实现
  • 神经网络和机器学习的一些基本概念
  • 某种物联网SIM卡流量查询方法