基于Matlab的数据可视化

基于Matlab的数据可视化

  • 一、二维图形的绘制
    • (一)基本图形函数
      • (1)plot函数
      • (2)fplot函数
      • (3)其他坐标系的二维曲线
    • (二)图形属性设置
      • (1)线型、标记、颜色
      • (2)图形标注(支持LaTex中公式、符号的输入)
      • (3)坐标控制
  • 二、三维图形的绘制
    • (一)三维曲线
      • (1)plot3( )
      • (2)fplot3( )
    • (二)三维曲面
      • (1)平面网格数据的生成
      • (2)绘制三维曲面的函数
  • 三、句柄/窗口的控制
    • (一)图形对象句柄及属性
      • (1)对象句柄值的获取
      • (2)对象属性的获取/设置
    • (二)图形窗口的分割

一、二维图形的绘制

(一)基本图形函数

(1)plot函数

通过线段(折线)来连接给定的点与点的图像
在这里插入图片描述

  1. plot(X,Y):创建Y中数据对X中对应值的二维线图
  • 要绘制 由线段连接的 一组坐标 -> 将 X 和 Y 指定为 相同长度 的向量
  • 要在 同一组坐标区上 绘制 多组坐标 -> 将 X 或 Y 中的至少一个指定为 矩阵
% 1
x = 1:9;
y = 2:10;
plot(x,y);% 2
x = 1:9;
y = x.^2;
plot(x,y);% 3
x = 1:9;
y = 2:10;
plot(x);% 4
x = 1:9;
y = 0.1:0.2:1.7;
X = x+y*i;
plot(X);% 5
t = 0:0.01:2*pi; % 步长越小,对应的曲线就平滑
t = t.';  % 转置:将 行向量 转变为 列向量
% 画出来曲线的条数 == 矩阵的列数
x = [t,t,t];
y = [sin(t),sin(2*t),sin(0.5*t)];
plot(x,y);
12345
  1. plot(X,Y,LineSpec):使用指定的线型、标记和颜色创建绘图
    plot(X1,Y1,…,Xn,Yn):在同一组坐标区上绘制多对x和y坐标。此语法可替代将坐标指定为矩阵的形式
x1 = linspace(0,2*pi,10);
x2 = linspace(0,2*pi,20);
x3 = linspace(0,2*pi,200);
y1 = sin(x1);
y2 = sin(x2)+2;
y3 = sin(x3)+4;
plot(x1,y1,x2,y2,x3,y3);

在这里插入图片描述
3. plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn)
在这里插入图片描述

x1 = linspace(0,2*pi,10);
x2 = linspace(0,2*pi,20);
x3 = linspace(0,2*pi,200);
y1 = sin(x1);
y2 = sin(x2)+2;
y3 = sin(x3)+4;
plot(x1,y1,':g',x2,y2,x3,y3);  % : 虚线 g 绿色

在这里插入图片描述

(2)fplot函数

在这里插入图片描述

% 1
fplot(@(x)sin(1./x),[0,0.2]);% 2
x = [0:0.005:0.2];
y = sin(1./x);
plot(x,y);% 3
fplot(@(t)t*sin(t),@(t)t*cos(t),[0,10*pi],'-r');
序号图像
1在这里插入图片描述
2在这里插入图片描述
3在这里插入图片描述

(3)其他坐标系的二维曲线

  1. 对数坐标图:semilogx( )
    在这里插入图片描述
x = logspace(-1,2); %生成从0到100的对数间距
y = x;
semilogx(x,y);

在这里插入图片描述

  1. 极坐标图:polarplot( )
    在这里插入图片描述
theta = 0:0.01:2*pi;
rho = sin(theta) .* cos(theta);
polarplot(theta,rho);

在这里插入图片描述

  1. 统计图
  • 条形图:bar( )
    在这里插入图片描述
x = [2021,2022,2023];
y = [10,20;20,30;100,200]; % 对应年份两项指标的打分
bar(x,y);

在这里插入图片描述

  • 直方图(质量分布图):histogram( )
    在这里插入图片描述
    在这里插入图片描述
% 自动分 bin 算法 (将连续变量离散化处理)
x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins);
counts = h.Values % 每个 bin 中直方图的计数

在这里插入图片描述
在这里插入图片描述

  • 面积类图:pie( )
    在这里插入图片描述
x = [1:2:9];
pie(x);

在这里插入图片描述

  • 散点类图:scatter( )
    在这里插入图片描述
    在这里插入图片描述
t = 0:pi/50:2*pi;
x = 16*sin(t) .^ 3;
y = 13*cos(t) - 5*cos(2*t) -2*cos(3*t) - cos(4*t);
scatter(x,y,'red',"filled");

在这里插入图片描述

  • s矢量图:quiver( )
    在这里插入图片描述
% quiver(X,Y,U,V)在由X和Y指定的笛卡尔坐标上绘制具有定向分量U和V的箭头
% 即起点(X,Y)->终点(U,V)
A = [4,5];
quiver(0,0,A(1),A(2));

在这里插入图片描述
在这里插入图片描述

A = [4,5]
B = [-10,10]
C = A + B
hold on
quiver(0,0,A(1),A(2))
quiver(0,0,B(1),B(2))
quiver(0,0,C(1),C(2))
title('A向量+B向量的结果')
xlabel('X')
ylabel('Y')
text(A(1),A(2),'A')
text(B(1),B(2),'B')
text(C(1),C(2),'C')
grid on

在这里插入图片描述

(二)图形属性设置

(1)线型、标记、颜色

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)图形标注(支持LaTex中公式、符号的输入)

  1. title(图形标题)
  2. xlabel(x轴说明)
  3. ylabel(y轴说明)
  4. text(x,y,图形说明)
  5. legend(图例1,图例2)

(3)坐标控制

  1. axis( )
    在这里插入图片描述
  2. 给坐标系加网格和边框
    在这里插入图片描述
    在这里插入图片描述
x = linspace(0,2*pi,200);
y = [sin(x);sin(2*x);sin(0.5*x)];
plot(x,y);axis([0,6.5,-1.5,1.5]);
title('三个正弦函数曲线y=sin{\theta}','FontSize',24);
xlabel('X');
ylabel('Y');
text(2.5,sin(2.5),'sin(x)');
text(2.5,sin(2*2.5),'sin(2x)');
legend('sin(x)','sin(2x)','sin(0.5x)')

在这里插入图片描述

  1. 图形保持

在这里插入图片描述

t = linspace(0,2*pi,200);
x = sin(t);
y = cos(t);
plot(x,y,'b');
axis equal
hold on
x1 = 2*sin(t);
y1 = 2*cos(t);
plot(x1,y1,'r');

在这里插入图片描述


二、三维图形的绘制

(一)三维曲线

(1)plot3( )

在这里插入图片描述
在这里插入图片描述

t = [0:0.1:10*pi];
x = sin(t) + t .* cos(t);
y = cos(t) - t .* sin(t);
z = t;
plot3(x,y,z);

在这里插入图片描述

% 1  sin(x)的三维图
y = t;
plot3(t,y,sin(t));% 2
t = [0:0.1:10*pi];
t = t.';
x = [t,t,t];
y = [sin(t),sin(t)+2,sin(t)+4];
z = t;
plot3(x,y,z);% 3  x 与 y 中有的是向量,有的是矩阵
t = [0:0.1:10*pi];
x = t;
y = [sin(t);sin(t)+2;sin(t)+4];
z = t;
plot3(x,y,z);% 4
t = [0:0.1:10*pi];
plot3(x,sin(t),z,x,sin(t)+2,z,x,sin(t)+4,z);
序号图像
1在这里插入图片描述
2在这里插入图片描述
3在这里插入图片描述
4在这里插入图片描述

(2)fplot3( )

在这里插入图片描述
在这里插入图片描述

t = [0:0.1:10*pi];
x = @(t) exp(-t/10) .* sin(5*t);
y = @(t) exp(-t/10) .* cos(5*t);
z = @(t) t;
fplot3(x,y,z,[-12,12],'r');

在这里插入图片描述

(二)三维曲面

(1)平面网格数据的生成

  1. 利用矩阵运算生成
  2. 利用meshgrid函数生成

在这里插入图片描述

%(1)利用矩阵运算生成
x = [2:6]
y = [3:8]'
X = ones(size(y))*x % 把x拉6行
Y = y*ones(size(x)) % 列在前,行在后%(2)利用meshgrid函数
x = [2:6]
y = [3:8]'
[X,Y]=meshgrid(x,y)

两个方法结果相同
在这里插入图片描述

(2)绘制三维曲面的函数

在这里插入图片描述

x = -2:0.2:2;
[X,Y]=meshgrid(x);
Z = X .* exp(-X .^ 2 - Y .^ 2);%  1
plot3(X,Y,Z);%  2
mesh(X,Y,Z);%  3
surf(X,Y,Z);
序号图像
1在这里插入图片描述
2在这里插入图片描述
3在这里插入图片描述

在这里插入图片描述

x = [2:6];
y = [3:8]';
[X,Y] = meshgrid(x,y);
Z = randn(size(X)); % 和X/Y大小一致即可
plot3(X,Y,Z);

在这里插入图片描述


三、句柄/窗口的控制

(一)图形对象句柄及属性

(1)对象句柄值的获取

在这里插入图片描述

x = 1:10;
y = x .^ 2;
h = plot(x,y);  % 将句柄保存到 h 变量中
h1 = text(5,25,'说明');
h1.FontSize = 24; % 更改图窗中字体大小

在这里插入图片描述

(2)对象属性的获取/设置

在这里插入图片描述
在这里插入图片描述

x = linspace(0,2*pi,100);
y = sin(x);
h = plot(x,y);
get(h);
set(h,'Color','red');

在这里插入图片描述

在这里插入图片描述

(二)图形窗口的分割

在这里插入图片描述

x = linspace(0,2*pi,100);
subplot(2,2,1); % 相当于激活函数
plot(x,sin(x));
title('sin(x)');subplot(2,2,2);
plot(x,cos(x));
title('cos(x)');subplot(2,2,3);
plot(x,tan(x));
title('tan(x)');subplot(2,2,4);
plot(x,cot(x));
title('cot(x)');

在这里插入图片描述

在这里插入图片描述

x = -1:0.2:2;
[X,Y] = meshgrid(x);
Z = X .* exp(-X .^ 2 - Y .^ 2);subplot(1,3,1);
plot3(X,Y,Z);subplot(1,3,2);
mesh(X,Y,Z);subplot(1,3,3);
surf(X,Y,Z);

在这里插入图片描述


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

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

相关文章

c++应用网络编程之四Linux常用的网络IO模型

一、网络IO模型的实际应用 在前面学习了基本的网络IO模型,那么这种抽象的网络IO模型如何在实际的编程中应用呢?这其实就是理论与实际如何产生联系的一个过程。在现实世界中,有了理论的指导,下一步就是要把相关的理论如何与具体的…

Linux网络:应用层协议HTTP(一)

一、什么是HTTP协议 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。 在互联网世界中,HTTP(HyperText Transfer Protocol&…

C#中的栈和队列

什么是栈 栈和队列是非常重要的两种数据结构,在软件设计中应用很多。栈和队列也是线性结构,线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到眼制。栈的操作只能在表的一端进行,队列的插入操作在表…

安卓篇-unidbg初步测试

前言:目前app的进度是c层的md5魔改 已经做好,又套了一层java层的加密。刚好可以再熟悉一下unidbg 最新版的app ,作为demo测试一下。 分析先看下app 的反编译的结果,很明显,源码很清晰 ,之前的混淆方式一点用没有。 然后跳过去 /* loaded from: classes4.dex */ public c…

HALCON数据结构

一、HALCON数据结构简介 1、HALCON中有两类参数:图形参数和控制参数。 2、HALCON算子参数中,图形输入参数、图形输出参数、控制输入参数和控制输出参数。 3、图形参数有:图像(image)、区域(region)和轮廓(XLD) 4、控制参数有:…

FPGA实验5:4位加法计数器

实验目的及要求 掌握时钟信号、进程和BUFFER端口的运用;了解计数器的设计、仿真和硬件测试,进一步熟悉VHDL语句、语法及应用等。 实验原理 运用Quartus II 集成环境下的VHDL文本设计方法设计4位加法计数器,进行波形仿真和分析、引脚分配…

人工智能与机器学习原理精解【2】

文章目录 机器学习基础一般化流程回归线性回归julia实现最小二乘法原理最小二乘法的原理线性回归中的最小二乘法最小二乘法的优点与局限性最小二乘法算法过程一、线性回归模型二、目标函数三、求解算法四、算法步骤四、计算公式五、注意事项 回归理论概述回归的基本概念回归模型…

4 Java的基本程序设计结构(基本语法3)- 字符串、面向对象(进阶)

文章目录 前言一、java中的 究竟比较的是什么?二、字符串1 String(1)String的两种构造方式(2)字符数组转字符串、字节数组转字符串(3)字符串的 拼接(4)字符串的内存结构…

2024睿抗机器人开发者大赛CAIP编程赛题解(c++)

题目地址(补题) PTA | 程序设计类实验辅助教学平台 RC-u1 热҈热҈热҈ 简单模拟题&#xff0c;没什么好说的 : #include<bits/stdc.h> using namespace std ; const int N 55 ;int a[N] ;int main(){int n , w ; cin >> n >> w ;for(int i1;i<n;i)…

【Android面试八股文】荣耀面试算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵

文章目录 1. 算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵1.1 题目描述1.2 算法实现1.2.1 步骤说明:1.2.2 算法实现1.2.3 代码实现:1.2.4 程序说明:1.2.5 示例详细讲解如何将一个矩阵顺时针旋转90度1. 算法题:输入一个N阶方…

Spring -- 三层架构

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 应用分层 介绍 在阿里的开发手册里,关于工程结构部分,定义的常见工程的应用分层结构 那么什么是应用分层呢? 应用分层是一种软件开发设计思想,他将应用程序分层N个层次.这N个层次分别负责各…

Oracle小白菜鸟从入门到精通教程

前言 Oracle公司&#xff08;甲骨文&#xff09;是全球最大的信息管理软件及服务供应商&#xff0c;成立于1977年&#xff0c;总部位于美国加州Redwood shore&#xff0c;面向全球开放oracle认证。Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财…

Hi6274 反激式20瓦电源芯片

HI6274为高性能多模式 PWM 反激式20瓦电源芯片。HI6274较少的外围元器件、较低的系统成本可设计出高性能的"无Y"开关电源。HI6274提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、过载保护、软启动、芯片过温保护、可编程输出过压保护功能…

云原生项目纪事系列 - 项目管理的鲜活事例

大规模云原生系统的新颖性、建设性和挑战性&#xff0c;吸引着许多有数学思想、哲学意识和美学观念的系统架构师&#xff0c;老模也是其中一员。 老模即是文史家庭出身&#xff0c;又有理工学业背景&#xff0c;他基于平时记录的翔实细节&#xff0c;秉持客观原则&#xff0c;使…

【Langchain大语言模型开发教程】记忆

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…

世界启动Ⅷ--AI视频制作-方案与创新

1.文本/图片生成视频顾名思义&#xff0c;就是输入一段文本描述/上传一张图片即可生成对应的视频。我们常见的Runway、Pika、NeverEnds、Pixverse、svd等都属于此类。比如runway的影视风格Pika的动漫风格NeverEnds的人像模特当然还有一些外延应用&#xff0c;例如最近比较火的阿…

【Webpack】提高打包速度

升级 webpack 版本&#xff1a;Webpack 不断更新优化打包速度&#xff0c;升级到最新版本可以获得更好的性能。 减少模块解析范围&#xff1a;通过设置resolve.modules、resolve.extensions、resolve.alias等选项&#xff0c;可以让Webpack减少查找和解析模块的范围&#xff0…

《从C/C++到Java入门指南》- 17.命令行参数

命令行参数 一直写代码的童鞋可能留意到了&#xff0c;main函数中会传入一个String args[]的字符串数组。 这个数组由JVM接收用户输入并传给main函数。 import java.util.*; public class Main {public static void main(String[] args) {for (String arg : args) {System.out…

FLINK-运行架构

为什么要学习Flink运行架构&#xff1f; 虽然现在大厂的开发工具都非常高效、只需要进行参数配置、Flink-sql写业务逻辑&#xff0c;但是在资源配置逻辑优化上不可避免需要了解底层的组件配置。面试时可能也会被问到FLINK是如何进行资源分配、作业运行的等。 以下是在学习时记录…

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图&#xff08;二D&#xff09; 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 等高线图使用filled.contour函数示例…