Matlab绘图系列教程-Matlab 34 种绘图函数示例(上)

Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化

文章目录

  • Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化
    • 第一部分:入门指南
      • 1.1 简介
        • 关于本教程的目的与范围
        • Matlab绘图在科学研究中的重要性
      • 1.2 准备工作
        • 安装Matlab及其工具箱
      • 1.3 Matlab 34 种绘图函数示例(上)
        • plot函数:绘制二维折线图
        • scatter函数:绘制散点图
        • bar函数:绘制柱状图
        • pie函数:绘制饼图
        • histogram函数:绘制直方图
        • contour函数:绘制等高线图
        • quiver函数:绘制矢量场图
        • surf函数:绘制三维曲面图
        • imagesc函数:绘制热图
        • errorbar函数:绘制带有误差条的折线图
        • area函数:绘制填充区域图
        • stem函数:绘制离散信号图
        • polarplot函数:绘制极坐标图
        • loglog函数:绘制双对数坐标图
        • contourf函数:绘制填充等高线图
        • waterfall函数:绘制瀑布图
        • rose函数:绘制玫瑰图
        • stem3函数:绘制三维离散信号图

第一部分:入门指南

1.1 简介

关于本教程的目的与范围

欢迎来到Matlab绘图指南!本教程的目标是帮助您从一个绘图小白蜕变为Matlab绘图大神。无论您是科学研究人员、学生还是对数据可视化感兴趣的爱好者,本教程将为您揭示绘制高质量科学图表的技巧和策略,让您的图表在论文和报告中脱颖而出。

Matlab绘图在科学研究中的重要性

您可能会问,为什么要选择Matlab作为绘图工具呢?好问题!Matlab绘图功能强大而灵活,被广泛应用于科学研究领域。通过精心绘制的图表,您可以更好地展示数据和结果,让您的研究更具说服力和影响力。因此,掌握Matlab绘图技巧将成为您在科研道路上的得力助手。

1.2 准备工作

安装Matlab及其工具箱

在踏上绘图之旅之前,我们首先要确保您已成功安装Matlab及其必要的工具箱。如果您还没有安装Matlab,别担心!MathWorks官方网站将为您提供下载和安装指南。

1.3 Matlab 34 种绘图函数示例(上)

Matlab是一种功能强大的科学计算软件和编程语言,它在数据可视化方面有着出色的表现。Matlab提供了各种绘图函数和工具,使用户能够创建高质量的二维和三维图形,并进行各种定制和交互操作。

plot函数:绘制二维折线图

% 创建数据
x = 0:pi/10:2*pi;
y = sin(x);

% 绘制线图
plot(x, y, 'b--o', 'LineWidth', 2);

% 添加标题和标签
title('Sin Function');
xlabel('X');
ylabel('Y');

% 添加网格
grid on;

% 添加图例
legend('sin(x)');

p1

scatter函数:绘制散点图

% 创建数据
x = randn(100, 1);
y = randn(100, 1);
sizes = 30 + 100 * rand(1, 100);
colors = rand(1, 100);

% 绘制散点图
scatter(x, y, sizes, colors, 'filled');

% 添加标题和标签
title('Scatter Plot');
xlabel('X');
ylabel('Y');

% 添加网格
grid on;

p2

bar函数:绘制柱状图

% 创建数据
x = 1:5;
y = [3 7 2 5 9];

% 绘制柱状图
bar(x, y);

% 添加标题和标签
title('Bar Chart');
xlabel('Category');
ylabel('Value');

% 添加刻度标签
xticks(x);
xticklabels({'A', 'B', 'C', 'D', 'E'});

% 添加网格
grid on;

p3

pie函数:绘制饼图

% 创建数据
data = [30 15 25 10];

% 绘制饼图
pie(data);

% 添加标题和图例
title('Pie Chart');
legend('A', 'B', 'C', 'D');

p4

histogram函数:绘制直方图

% 创建数据
data = randn(1000, 1);

% 绘制直方图
histogram(data, 'BinWidth', 0.5, 'Normalization', 'probability');

% 添加标题和标签
title('Histogram');
xlabel('Value');
ylabel('Probability');

% 添加网格
grid on;

p5

contour函数:绘制等高线图

% 创建数据
x = -2:0.1:2;
y = -2:0.1:2;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;

% 绘制等高线图
contour(X, Y, Z);

% 添加标题和标签
title('Contour Plot');
xlabel('X');
ylabel('Y');

% 添加颜色栏
colorbar;

p6

quiver函数:绘制矢量场图

% 创建数据
x = -2:0.2:2;
y = -2:0.2:2;
[X, Y] = meshgrid(x, y);
U = -Y;
V = X;

% 绘制矢量场图
quiver(X, Y, U, V);

% 添加标题和标签
title('Quiver Plot');
xlabel('X');
ylabel('Y');

% 设置坐标轴范围
axis([-2.5 2.5 -2.5 2.5]);

p7

surf函数:绘制三维曲面图

% 创建数据
x = -2:0.2:2;
y = -2:0.2:2;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;

% 绘制三维曲面图
surf(X, Y, Z);

% 添加标题和标签
title('Surface Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

% 添加颜色栏
colorbar;

% 设置视角
view(45, 30);

p8

imagesc函数:绘制热图

% 创建数据
data = peaks(100);

% 绘制热图
imagesc(data);

% 添加标题和颜色栏
title('Heatmap');
colorbar;

% 调整坐标轴
axis image;

% 添加刻度标签
xticks(0:20:100);
yticks(0:20:100);

% 添加刻度标签标签
xticklabels({'0', '1', '2', '3', '4', '5'});
yticklabels({'0', '1', '2', '3', '4', '5'});

p9

errorbar函数:绘制带有误差条的折线图

% 创建数据
x = 1:5;
y = [3 7 2 5 9];
y_error = [0.5 1 0.8 0.3 1.2];

% 绘制带有误差条的折线图
errorbar(x, y, y_error, 'o-', 'LineWidth', 2, 'MarkerSize', 8);

% 添加标题和标签
title('Errorbar Plot');
xlabel('Category');
ylabel('Value');

% 添加刻度标签
xticks(x);
xticklabels({'A', 'B', 'C', 'D', 'E'});

% 添加网格
grid on;

p10

area函数:绘制填充区域图

% 创建数据
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

% 绘制填充区域图
area(x, [y1; y2]', 'LineWidth', 1.5);

% 添加标题和标签
title('Area Plot');
xlabel('X');
ylabel('Y');

% 添加图例
legend('sin(x)', 'cos(x)');

% 添加网格
grid on;

p11

stem函数:绘制离散信号图

% 创建数据
x = 0:0.1:2*pi;
y = sin(x);

% 绘制离散信号图
stem(x, y, 'filled', 'LineWidth', 1.5, 'MarkerSize', 8);

% 添加标题和标签
title('Discrete Signal Plot');
xlabel('X');
ylabel('Y');

% 添加网格
grid on;

p12

polarplot函数:绘制极坐标图

% 创建数据
theta = linspace(0, 2*pi, 100);
rho = abs(sin(2*theta));

% 绘制极坐标图
polarplot(theta, rho, 'LineWidth', 2);

% 添加标题
title('Polar Plot');

p13

loglog函数:绘制双对数坐标图

% 创建数据
x = logspace(0, 3, 100);
y = 1./(x.^2);

% 绘制双对数坐标图
loglog(x, y, 'r-', 'LineWidth', 2);

% 添加标题和标签
title('Log-Log Plot');
xlabel('X');
ylabel('Y');

p14

contourf函数:绘制填充等高线图

% 创建数据
x = -2:0.1:2;
y = -2:0.1:2;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;

% 绘制填充等高线图
contourf(X, Y, Z);

% 添加标题和标签
title('Filled Contour Plot');
xlabel('X');
ylabel('Y');

% 添加颜色栏
colorbar;

p15

waterfall函数:绘制瀑布图

% 创建数据
x = -5:0.5:5;
y = -5:0.5:5;
[X, Y] = meshgrid(x, y);
Z = peaks(length(x));

% 绘制瀑布图
waterfall(X, Y, Z);

% 添加标题和标签
title('Waterfall Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

% 设置视角
view(-30, 30);

p16

rose函数:绘制玫瑰图

% 创建数据
theta = 0:0.1:2*pi;
data = abs(sin(3*theta));

% 绘制极坐标玫瑰图
rose(theta, data);

% 添加标题
title('Rose Plot');

p17

stem3函数:绘制三维离散信号图

% 创建数据
t = 0:0.1:10;
x = sin(t);
y = cos(t);
z = t;

% 绘制三维离散信号图
stem3(x, y, z, 'filled', 'LineWidth', 1.5, 'MarkerSize', 8);

% 添加标题和标签
title('3D Discrete Signal Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');

% 添加网格
grid on;

p18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/34535.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索Python条件语句的奇妙世界:解密逻辑与控制流

文章目录 前言if 语句if ... else ...多重判断(if ... elif ... else...)if 嵌套猜数字游戏三目运算符 前言 Python的条件语句用来根据特定的条件决定程序的执行流程。它允许程序根据条件的真假执行不同的代码块,从而实现不同情况下的不同操…

ES6: 模版字符串

前言: ES5 中我们表示字符串的时候使用 或者 "" 作用: 在 ES6 中,我们还有一个东西可以表示字符串,就是 (反引号) let str hello worldconsole.log(typeof str) // string和单引号还有双引号的区别: 反引号可以换行…

《面向分布式云的直播及点播云技术创新方案》获中国信通院“分布式云技术创新先锋案例”

由中国信息通信研究院、中国通信标准化协会主办的第三届“云边协同大会”于 6 月 30 日在京举办。阿里云视频云团队凭借 《面向分布式云的直播及点播云技术创新方案》 在一众产品服务中脱颖而出,荣获「分布式云技术创新先锋案例」。 面向分布式云技术的直播及点播云…

83、基于STM32单片机录音机录音笔语音存储回放TF卡TFT屏系统设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

单片机主芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元&a…

git介绍和使用

目录 一、git概述 1、简介 2、下载安装 二、git代码托管服务 1、常用的 Git 代码托管服务 2、使用码云代码托管服务 三、git常用命令 1、git全局设置 2、获取git仓库 3、工作区、暂存区、版本库 概念 4、Git工作区中文件的状态 5、本地仓库操作 6、远程仓库操作 …

python简单实现人脸检测/跟随

import cv2# 加载人脸识别器的模型 face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)# 打开摄像头 cap cv2.VideoCapture(0)# 初始化人脸框位置 prev_faces []# 定义绘制带圆角矩形边框的函数 def draw_rounded_rectangle(…

pip安装opencv-python不成功

一个比较笨但还算有效的方法:如果你的python版本较低,如现在2023-07-04使用python3.6环境,使用pip默认安装会是最新的4.8.0.7版本,但事实上这个版本不支持py3.6环境,所以你需要去这里查支持py3.6的最近的一个版本是什么…

从 AI 增强到大模型,企业使用数据的方式又将如何变化?

AI(Artificial Intelligence,人工智能)的发展不过百年,却已经深刻影响着人们的思维和见解,并逐渐关联到每个人生活和工作的方方面面。从最初的规则引擎和引入统计学方法,到基于知识表示和推理机制的专家系统…

VScode中的插件

开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview 插件安装: 插件使用:由下角 - 状态栏 - VS Browser按钮 live sass compiler-vscode插件将scss编译为css live sass compiler是VSCode扩展,可以实时地将SASS / SCSS文件…

POSTGRESQL SQL 执行用 IN 还是 EXISTS 还是 ANY

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共…

【youcans动手学模型】MobileNet 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】MobileNet 模型-CIFAR10图像分类 1. MobileNet 卷积神经网络模型1.1 模型简介1.2 论文介绍 2. 在 PyTorch 中定义 MobileNet V1 模型类2.1 深度可分离卷积(DSC&…

转换流~~

乱码如何解决: 使用字符输入转换流可以提取文件(GBK)的原始字节流,原始字节不会存在问题然后把字节流以指定编码转换成字符输入流,这样字符输入流中的字符就不乱码了 1:字符输入转换流 字符转换输入流&a…

uni-App踩坑记录

​ 1、uni自己封装的axios在真机中失效,发不出请求 uniapp中使用axios 需要配置适配器 (添加适配器有点费劲,直接封装uni自带请求也可以) axios-adapter-uniapp传送门 axios.defaults.adapter function(config) { //自己定义个适配器,用来…

2023年生猪行业研究报告

第一章 行业概况 生猪是指猪类动物中未经加工的、原始的、活体的猪,通常是指用于肉类生产的猪。生猪在全球范围内都是主要的肉类来源之一。它们的肉质丰富,营养价值高,同时还能用来制作各种加工肉类产品,如火腿、香肠等。 生猪养…

AR试穿试戴相关SDK或平台

1.火山引擎 链接 咨询过平台收费比较高几十万一年而且还是起步价 2.Geenee 链接 geenee在衣服、裤子、头饰以及鞋子方面可以实现试穿。 3.Wanna 链接 Wanna 试衣、试包、试鞋及手表都可以,我试过鞋子的试穿效果还不错 4.DeepAR …

nginx进行反向代理

Nginx是一个开源的高性能Web服务器和反向代理服务器。它最初是由Igor Sysoev在2004年开发的,现在由一个全球性的社区维护和支持。 Nginx的主要特点包括: 高性能:Nginx使用事件驱动模型,可以处理高并发请求,具有出色的…

信息服务上线渗透检测网络安全检查报告和解决方案4(网站风险等级评定标准、漏洞危害分级标准、漏洞安全建议)

系列文章目录 信息服务上线渗透检测网络安全检查报告和解决方案3(系统漏洞扫描、相对路径覆盖RPO漏洞、nginx漏洞修复)信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)信息服务上线渗透检测网…

常微分方程(ODE)求解方法总结(续)

常微分方程(ODE)求解方法总结(续) 1 隐式方法2 多步法2.1 二阶方法2.1.1 非自启动修恩方法2.2 开型和闭型积分公式2.3 高阶多步法 1 隐式方法 常微分方程(ODE)求解方法总结 里面介绍了我称为“正常思路”的…

C/C++的发展历程和未来趋势

文章目录 C/C的起源C/C的应用C/C开发的工具C/C未来趋势 C/C的起源 C语言 C语言是一种通用的高级编程语言,由美国计算机科学家Dennis Ritchie在20世纪70年代初期开发出来。起初,C语言是作为操作系统UNIX的开发语言而创建的。C语言的设计目标是提供一种功…

Transformer时间序列:PatchTST引领时间序列预测进

Transformer时间序列:PatchTST引领时间序列预测进 引言为什么transformer框架可以应用到时间序列呢统计学模型深度学习模型 PatchTSTPatchTST模型架构原理。通道独立性Patchingpatching的优点Transformer编码器 利用表示学习改进PatchTST使用PatchTST模型进行预测初…