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

news2025/1/20 13:23:22

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.coloradmin.cn/o/718976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干货 | 石化产品机器学习价格模型开发和SEI石化产品价格分析体系构建

以下内容整理自大数据能力提升项目必修课《大数据系统基础》同学们的期末答辩汇报。 我们的报告将分为六个部分,第一部分是研究背景与内容。受疫情影响以来,石化行业市场日趋饱和,竞争激烈,同时利润也受到压缩,大部分石…

谈个人信息保护

一、互联网生存指南:通过哪些方法来加强个人信息保护? 1.密码管理:选择安全可靠的密码,并避免使用容易猜测的密码。不要在不同的网站和应用程序使用相同的密码,以防止未经授权的访问。 2.双重身份验证:使…

AIMAX集群配置sdfstudio容器记录

AIMAX集群配置sdfstudio容器记录 一、登录二、测试三、通过Filezilla传输数据四、通过第三方私有镜像直接创建环境方式1 从dockerhub中下载方式2 上传github中的dockerfile方式3 上传dockerhub中的第三方镜像1. 在ubuntu在安装docker2. 下载第三方镜像3. 修改hosts4. 下载证书5…

【重拾计划】[NOIP1998 提高组] 车站

今日题目 [NOIP1998 提高组] 车站 题目描述 火车从始发站(称为第 1 1 1 站)开出,在始发站上车的人数为 a a a,然后到达第 2 2 2 站,在第 2 2 2 站有人上、下车,但上、下车的人数相同,因此…

python字典:揭秘无序元素的奥秘之旅

前言 在编程中,数据的组织和管理是一个关键的方面。对于处理和操作数据,Python 提供了许多强大的数据结构,其中最常用和灵活的之一就是字典(Dictionary)。 无论您是初学者还是有经验的开发者,掌握字典的基本知识是非常重要的。本…

解决PyInstaller打包selenium脚本时弹出driver终端窗口

解决PyInstaller打包selenium脚本时弹出driver终端窗口 找到service.py C:\Users\XXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\common\service.py添加creationflags 在第77行添加: creationflags134217728使用PyInstaller打包 pyinstaller -F -w -…

8.2.3 【Linux】xz, xzcat/xzmore/xzless/xzgrep

8.3 打包指令: tar 8.3.1 tar 其实最简单的使用 tar 就只要记忆下面的方式即可: 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称 查 询:tar -jtv -f filename.tar.bz2 解压缩:tar -jxv -f filename…

Lesson2-1:OpenCV基本操作

图像的基础操作 学习目标 掌握图像的读取和保存方法能够使用OpenCV在图像上绘制几何图形能够访问图像的像素能够获取图像的属性,并进行通道的分离和合并能够实现颜色空间的变换 1 图像的IO操作 这里我们会给大家介绍如何读取图像,如何显示图像和如何…

uniapp-设置全屏

需求&#xff1a;就是想要小程序不受限制&#xff0c;可以把图片或者文字全屏的展示&#xff0c;如下图 vue代码如下&#xff1a; <template><view class"content"><image class"image-bg" src"/static/logo.png" /><imag…

Python GUI编程利器:Tkinker中的微调节器和滑块(6)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日目标 实现下面效果&#xff1a; 微调节器(Spinbox类) 微调节器可以通过箭头调整所需的数值。 创建微调节器对象语法格式…

ChatGPT助力校招----面试问题分享(十)

1 ChatGPT每日一题&#xff1a;阻抗匹配的方法有哪些 问题&#xff1a;阻抗匹配是什么 ChatGPT&#xff1a;阻抗匹配是一种电路设计技术&#xff0c;用于确保电路中各个组件之间的电阻、电感和电容等参数相互匹配&#xff0c;以最大程度地传输信号或功率 当阻抗不匹配时&…

7/2~7/4学习成果总结

这几天初步的了解了一下Java&#xff0c;然后写了几道题&#xff1a; 下面总结一下学Java的时候遇到的一易错的小问题以及总结&#xff1a; 1. java里面只能在一个源文件里有一个public类&#xff0c;但是入口main那个可以理解为public static是一个整体也就是不属于public&a…

『C/C++养成计划』C++中的静态库和动态库|GCC|Makefile|CMake学习

C中的静态库和动态库|GCC|Makefile|CMake学习&#xff01; 文章目录 一. 什么是库二. 静态库1.1. 静态库生成1.2. 静态库制作举例1.2.1 准备测试程序1.2.2 生成静态库 1.3. 静态库的使用 三. 动态库3.1. 为什么需要动态库3.2. 生成动态链接库3.3. 动态库制作举例3.4. 动态库的…

【JUC并发编程】Callable接口创建线程

一、介绍 与继承Thread类和实现Runnable接口两种创建线程方式的区别 ① Callable接口可以有返回值 ② Callable接口可以抛出异常 ③ 执行方法不同&#xff0c;call()方法和run()方法 二、代码演示 继承Thread类和实现Runnable接口的方式创建线程 package callable;import java…

celery Periodic Tasks 周期任务

celery Periodic Tasks 周期任务 https://docs.celeryq.dev/en/latest/userguide/periodic-tasks.html /home/mike/work/celery-5.3.1/examples/periodic-tasks myapp.py """myapp.pyUsage::# The worker service reacts to messages by executing tasks.(w…

pip安装指定包,找不到如何解决?

背景&#xff1a;现如今&#xff0c;在跑神经网络的时候&#xff0c;需要配置一些开源项目从而需要指定一些特定环境是必不可少的一个步骤&#xff0c;但是很多时候使用pip安装包的时候&#xff0c;总是找不到需要的版本。比如&#xff0c;今天需要配置open3d 0.15.1版本的环境…

群晖 nas 升级内存 手记(DS423+)

题外话&#xff1a; 我原来用的是群晖DS218&#xff0c;也用了5年了&#xff0c;今年5月份突然不能开机了&#xff0c;感觉故障不大&#xff0c;群晖官方又不好联系&#xff0c;非常麻烦。只好邮递到北京一家所谓的维修群晖的维修点&#xff0c;他们说维修费最多不超过200元&am…

Visual studio 快捷键(个人记录加深印象)

1、CtrlK 后 Ctrlx 插入代码片段快捷键&#xff08;或 编辑”>“IntelliSense”>“插入代码片段&#xff09; 注&#xff08;摘抄&#xff09;&#xff1a;该列表包含用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段

java定义数组的三种类型总结

三种定义数组的格式如下&#xff1a; int[] arr1new int[10]; int[] arr2{1,2,3,6}; int[] arr3new int[]{1,2,3,4,5,6,7,22}; 注意&#xff1a;数组的length是一个属性&#xff0c;而字符串的length()是一个方法了&#xff01;&#xff01;&#xff01;虽然都是求的他们各…

自定义 MVC 框架思想

目录 一、MVC设计模式 1. 什么是MVC 2. 三层架构与MVC的区别 二、自定义MVC框架 1. 为什么要学习自定义MVC框架 2. 自定义MVC的工作原理 3. 自定义MVC框架的优势 三、自定义MVC实例流程 1. mvc三层架构的弊端 2. 自定义MVC的工作流程 2.1 子控制器&#xff08;…