Matlab二维绘图

低级绘图命令line

有什么点就点哪里,然后连起来,没什么细节,不光滑,所以基本不会用到。

x=0:0.2*pi:2*pi;
y=sin(x);
line(x,y);%画一条sin函数线
line([-5,5],[2,2]);%画一条水平线
line([5,5],[0,2]);%画一条竖线

高级绘图命令plot

没有定细节的时候跟line长得是一样的,但可以确定更多的细节。这种用的是最多的,一个例子就能举例说清楚全部常用函数是怎么用的。

x=0:0.02*pi:2*pi;
y1=sin(x);
y2=sin(2*x);
y3=sin(x+pi/2);
plot(x,y1,'r:',x,y2,'+');%画一条sin函数线
hold on;%保持图形,不让后面画的图形覆盖之前画的图形
plot(x,y3,'-rs');%指定线型为实线,颜色为红色,数据点标记为方形
legend('y1','y2');%添加图例
legend('show');%显示图例off是清除hide是隐藏
colorbar;%添加颜色条
title('GUI二维绘图','FontWeight','Bold');%添加标题,字体设置为黑体
xlabel('横轴','FontSize',15);%X轴注释
ylabel('纵轴','FontSize',15);%Y轴注释
axis([0 5 -2 3]);%调整坐标轴范围X轴0到5,Y轴-2到3
axis('xy');%使用笛卡尔坐标系
axis('on');%打开网格线、坐标、注释
%axis也可以一次性加多个字符串
%axis([0 5 -2 3],'xy','on');
grid on;%添加网格线
text(2.5,2,'GoodJob','FontSize',25);%在(2.5,2)的位置加上文字
set(gca,'XTick',[0 1/3*pi pi]);%gca是当前坐标轴对象的句柄,XTick设置的是X轴刻度
set(gcf,'color','y');%gcf是当前当前图像对象的句柄,把背景颜色设置为黄色

效果如下图

样条函数spline

通过插值,将数据变化显得更加详细。

x=0:0.2:2*pi;
y=sin(x);
insertX=0:0.01:2*pi;
insertY=spline(x,y,insertX);
plot(x,y,'+r',insertX,insertY,'-g');

子图subplot

就是创造一些子图,看一个例子就懂了。

x=-5:5;
subplot(2,1,1);%2行1列,选择第1个子图。子图跟矩阵不同,是横着数的。
y1=rand(size(x));
y2=normpdf(x);
hold;%hold on和hold off之间切换,默认是hold off,这里就会变成hold on
plot(x,y1,'b');
hold;%这里就会变成hold off,后面绘制的图形会把前面的覆盖掉
plot(x,y2,'r');
title('hold off');
subplot(2,1,2);%2行1列,选择第2个子图
plot(x,y1,'b');
hold on;%后面绘制的图形不会覆盖前面的
plot(x,y2,'r');
title('hold on');

极坐标图polar

就是画个极坐标图,所以代码要用极坐标来算。

t=0:0.01*pi:2*pi;
r=2*sin(2*(t-pi/8)).*cos(2*(t-pi/8));
polar(t,r);

直角坐标系概率分布图

x=rand(500,1);%500*1矩阵
y=rand(500,3);%500*3矩阵
subplot(3,1,1);
hist(x);%x里面最大值和最小值的差平均分为10等分
subplot(3,1,2);
hist(x,100);%x里面最大值和最小值的差平均分为100等分
subplot(3,1,3);
hist(y,25);%x里面最大值和最小值的差平均分为25等分

画出来是这样的

极坐标系概率分布图

因为长得像玫瑰,所以也叫玫瑰图。

x=rand(1000,1)*100;
t=x*pi/180;
rose(t);
set(findobj(gca,'Type','Line'),'LineWidth',1.5);

柱状图

有两种,bar画横向柱状图,barh画纵向柱状图,格式如下:

bar(Y,option);%以1,2,3……为x坐标,option可选,下面的面积图等图形都有这个用法,不再赘述
bar(X,Y,option);%option如果为'stack'为累加式,如果为'group'为分组式

例子如下

x=[3 5 6;4 8 7;6 9 7];
subplot(1,2,1);bar(x);
subplot(1,2,2);barh(x,'stack');

面积图

有个小小的注意点就是要数据要变成列

x=[3 5 6 4 8]';
y=[4 8 6 9 4]';
subplot(1,2,1);area(x,y);%只画一条
subplot(1,2,2);area([x,y]);%累叠模式

饼状图

也就是计算个数据占比,不足100%的就空着。

x=rand(1,5);
y=[0.2 0.45 0.1];
subplot(1,2,1);pie(x);
subplot(1,2,2);pie(y);

离散数据绘图

x=0:0.2:10;
y=sin(x);
subplot(1,2,1);stem(x,y);%默认是空心小圆圈
subplot(1,2,2);stem(x,y,'fill');%画实心小圆圈

阶梯图

x=0:0.2:10;
y=sin(x);
stairs(x,y);
hold on;
plot(x,y);

等高线图

x=peaks;%生成的数据给到x
subplot(2,1,1);
contour(x);%绘制peaks图形等高线图,自动生成等高线
subplot(2,1,2);
[c,h]=contour(x,[3 1]);%c为等高矩阵,h为句柄列向量,指定等高线高度为3和1
clabel(c,h);%标注等高线标签,也就是等高线的数值
figure;%新建图形窗口
subplot(2,1,1);
[c,h]=contour(x,4);%指定等高线数量为4
clabel(c,h);
subplot(2,1,2);
contourf(x,4);%填充模式

一共画了4个图

你会发现用plot(x)打印出来的图跟等高线图是对应上的,它的本质其实是个三维图,我们后面讲三维图会讲到。

向量图

常用向量图有罗盘图、羽毛球图、向量场图。

x=rand(2,5);
y=rand(2,5);
subplot(2,2,1);
plot(x,y,'ro');
subplot(2,2,2);
compass(x,y);%绘制罗盘图,起点在原点
subplot(2,2,3);
feather(x,y);%绘制羽毛球图,起点在X轴上间隔单位长度的刻度点
subplot(2,2,4);
[x,y,z]=peaks(50);
contour(x,y,z,5);%等高线
[u,v]=gradient(z);%梯度
hold on;
quiver(x,y,u,v);%绘制向量场图

函数绘图

用M文件绘图

M文件定义

function y=Untitled(x)
y=exp(sin(x));

执行命令

fplot('Untitled',[0 2*pi]);%将[0 2*pi]传入m文件

执行效果


命令行窗口直接绘图

fplot('exp(sin(x))',[0 2*pi]);

匿名函数

f=@(x)exp(sin(x))%@代表将f定义为函数指针,f的入参为x
fplot(f,[0 2*pi]);

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

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

相关文章

一文搞懂MCU RAM的分配

一文搞懂MCU RAM的分配 文章目录 一文搞懂MCU RAM的分配1. 前言2. 数据段含义2.1 Program Size解析 3. 局部变量、全局变量、常量如何占用 RAM?3.1 栈大小Stack_Size 与 堆大小Heap_Size3.2 验证栈大小设置,对程序编译的影响3.3 验证局部变量RAM分配3.4 验证全局变…

Mac系统安装PicGo时打开报错:文件已损坏

目录 一、前言二、解决方案三、结尾 一、前言 我们在安装某些第三方开发者开发的应用时,无法在 Mac 上运行,提示已经损坏,报以下错误:Mac系统安装PicGo时打开报错:文件已损坏,您应该将它移到废纸篓 二、解决…

LeetCode 2807.在链表中插入最大公约数

【LetMeFly】2807.在链表中插入最大公约数 力扣题目链接:https://leetcode.cn/problems/insert-greatest-common-divisors-in-linked-list/ 给你一个链表的头 head ,每个结点包含一个整数值。 在相邻结点之间,请你插入一个新的结点&#x…

DQL命令查询数据(三)

本课目标 掌握MySQL的多表查询 SQL语句的综合应用 多表连接查询 通过各个表之间共同列的关联性(例如:外键)来查询的 分类: 内连接(INNER JOIN) ,可简写为 JOIN;左外连接(LEFT OUTER JOIN),…

Java技术栈 —— Hadoop入门(一)

Java技术栈 —— Hadoop入门(一) 一、Hadoop第一印象二、安装Hadoop三、Hadoop解析3.1 Hadoop生态介绍3.1.1 MapReduce - 核心组件3.1.2 HDFS - 核心组件3.1.3 YARN - 核心组件3.1.4 其它组件3.1.4.1 HBase3.1.4.2 Hive3.1.4.3 Spark 一、Hadoop第一印象…

【Project】TPC-Online Module (manuscript_2024-01-07)

PRD正文 一、概述 本模块实现隧道点云数据的线上汇总和可视化。用户可以通过注册和登录功能进行身份验证,然后上传原始隧道点云数据和经过处理的数据到后台服务器。该模块提供数据查询、筛选和可视化等操作,同时支持对指定里程的分段显示和点云颜色更改…

小游戏实战丨基于PyGame的消消乐小游戏

文章目录 写在前面PyGame消消乐注意事项系列文章写在后面 写在前面 本期内容:基于pygame实现喜羊羊与灰太狼版消消乐小游戏 下载地址:https://download.csdn.net/download/m0_68111267/88700193 实验环境 python3.11及以上pycharmpygame 安装pygame…

回溯算法part01 算法

回溯算法part01 今日内容: ● 理论基础 ● 77. 组合 1.LeetCode77. 组合 https://leetcode.cn/problems/combinations/ 模板 //回溯算法模板void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节…

西电期末1027.判断同构数

一.题目 二.分析与思路 不用把他转成字符串再转成数字之类的&#xff0c;用数学解决就好&#xff01;找出一个数的最后位就是将其对求余啊&#xff0c;找一个数有几位以前也有过啊&#xff0c;那不就过了嘛&#xff01; 三.代码实现 #include<bits/stdc.h>//万能头 in…

模板元编程简介

从引入 template 关键字开始&#xff0c;C里就出现了泛型编程&#xff0c;而又泛型编程衍生出的模板元编程&#xff08;template meta_programming&#xff0c;简称“元编程”&#xff09;则是众多编程范式中最复杂、最强大和最具有权威的一种。所谓“元编程”——metaprogramm…

Keil C51的编译器限制

编译器限制 Cx51 编译器体现了下面列出的一些已知限制。在大多数情况下&#xff0c;对 C 语言的组件没有限制;例如&#xff0c;您可以在 switch 块中指定无限数量的符号或 case 语句。如果有足够的地址空间&#xff0c;则可以定义数千个符号。 最多支持对任何标准数据类型的 …

二叉树的经典算法(算法村第八关青铜挑战)

二叉树里的双指针 所谓的双指针就是定义了两个变量&#xff0c;在二叉树中有需要至少定义两个变量才能解决问题。这两个指针可能针对一棵树&#xff0c;也可能针对两棵树&#xff0c;姑且也称之为“双指针”。这些问题一般与对称、反转和合并等类型题相关。 判断两棵树是否相…

Python:tqdm模块详解

tqdm 是一个用于在 Python 中显示进度条的模块&#xff0c;用于在循环或迭代过程中展示任务的进度。 1. 安装 首先&#xff0c;你可以通过 pip 安装 tqdm 模块&#xff1a; pip install tqdm2. 基本使用方法 在 Python 中使用 tqdm &#xff0c;只需将你的迭代对象传递给 tqd…

【Linux】之搭建 PostgreSQL 环境

前言 在 Linux 系统下安装 PostgreSQL&#xff0c;可以选择快捷方便的 Docker 安装&#xff0c;但正常的服务器都是直接原生安装的&#xff0c;所以&#xff0c;这里我将讲解如何正常安装 PostgreSQL 以及安装之后的一些配置。如果想了解 Docker 安装的话&#xff0c;可以查看我…

竞赛练一练 第27期:GESP和电子学会相关题目练习

GESP一级2023.03_小猫捉老鼠 1. 准备工作 (1)导入背景Room 2; (2)删除默认小猫角色,导入角色Mouse1、Cat 2。 2. 功能实现 (1)点击绿旗,老鼠出现在随机位置; (2)通过键盘的“↑”、“↓”、“←”、“→”键来控制小猫行走,每按一次,移动5步; (3)小猫在…

使用openCV进行图像处理

使用 openCV进行图像处理 使用 openCV进行图像处理&#xff0c;又名&#xff1a;学习计算机视觉理论&#xff0c;做 demo(第3 天&#xff09; 目录 2.1 图像模糊 2.1.1 均值滤波2.1.2 中值滤波2.1.3 高斯滤波2.1.4 案例实现 2.2 图像锐化 2.2.1 图像锐化简介2.2.2 案例实现 …

Spring依赖注入的魔法:深入DI的实现原理【beans 五】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Spring依赖注入的魔法&#xff1a;深入DI的实现原理【beans 五】 前言DI的基本概念基本概念&#xff1a;为什么使用依赖注入&#xff1a; 构造器注入构造器注入的基本概念&#xff1a;示例&#xff1a…

laravel-admin之 浏览器自动填充密码(如果需要渲染数据库密码的话,首先确认数据库密码是否可以逆向解密)

参考 https://blog.51cto.com/u_10401840/5180106 为什么浏览器端保存的密码一直自动写入到$form->password 解决办法 2、在页面进入的时候&#xff0c;默认表单的type值为text&#xff1b;推荐指数&#xff1a;2颗星 5、设置表单的readonly属性;推荐指数&#xff1a;4颗…

实习遇到问题备忘录

1.Hutool工具包的DB Hutool学习 —— 数据库 - db &#xff08;一&#xff09;Db简单操作 - 简书 (jianshu.com) 2.Consumer函数接口 Java 常用函数式接口之Consumer接口 - LeeHua - 博客园 (cnblogs.com) 3.sql高级用法merge into SQL高级知识——MERGE INTO - 知乎 (zhi…

Linux 上 Nginx 配置访问 web 服务器及配置 https 访问配置过程记录

目录 一、前言说明二、配置思路三、开始修改配置四、结尾 一、前言说明 最近自己搭建了个 Blog 网站&#xff0c;想把网站部署到服务器上面&#xff0c;本文记录一下搭建过程中 Nginx 配置请求转发的过程。 二、配置思路 web项目已经在服务器上面运行起来了&#xff0c;运行的端…