Matlab二维绘图

news2024/10/1 5:39:21

低级绘图命令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.coloradmin.cn/o/1362826.html

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

相关文章

MySQL之视图外连接、内连接和子查询的使用

一、视图 1.1 含义 虚拟表,和普通表一样使用 1.2 操作 创建视图 create view 视图名 as 修改视图 方式一: create or replace view 视图名 as 【查看视图相关字段】 方式二: alter view 视图名 as 【查看的SQL语句】 查看视图 方式一&…

BUUCTF--actf_2019_babyheap1

这题看名字就知道是堆题,先看保护: 保护除了PIE全开,黑盒测试: 题目提供增删查,没有改。看看IDA中代码逻辑: 逻辑跟我前面做的一题极为相似,就不过多分析。 这是free: 因为题目不能…

基于SSM的驾校考试预约管理设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

求两个数之间的最小公约数

目录 前言 方法:求两个数之间的最小公约数 1.欧几里得算法 2.枚举法 3.公共因子积 4.更相减损术 5.Stein算法 解题:在链表中插入最大公约数 总结 前言 今天刷每日一题:2807. 在链表中插入最大公约数 - 力扣(LeetCode)…

数据库攻防学习之MySQL

MySQL 0x01mysql学习 MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。可以免费使用使用,用的人数很多。 0x02环境搭建 这里演示用,phpstudy搭建的…

SpringBoot 如何 返回页面

背景 RestController ResponseBody Controller Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。 Mapping ResponseBody 也会出现同样的问题。 解…

2024年阿里云优惠活动清单_优惠代金券领取大全

阿里云服务器优惠活动大全包括:云服务器新人特惠、云小站、阿里云免费中心、学生主机优惠、云服务器精选特惠、阿里云领券中心等,活动上阿里云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、轻量应用服务器2核2G3M带宽轻量服务器一年61元,…

Linux系统性能优化:七个实战经验

Linux系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常出现网页无法打开、打开速度慢等现象,而遇到这些问题,就有人…

Spring Cloud Sleuth+zipkin实现链路追踪

Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。 微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很…

【数据库系统概论】数据库并发控制机制——并发控制的主要技术之封锁(Locking)

系统文章目录 数据库的四个基本概念:数据、数据库、数据库管理系统和数据库系统 数据库系统的三级模式和二级映射 数据库系统外部的体系结构 数据模型 关系数据库中的关系操作 SQL是什么?它有什么特点? 数据定义之基本表的定义/创建、修改和…

【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案

问题: 1.new mars3d.layer.GeoJsonLayer({type: "polygon",在styleOptions里配置label的时候,发现这个 不规则polygon加载的时候,会出现label不在中心位置。 graphicLayer new mars3d.layer.GeoJsonLayer({ name: "全国省界…

网络通信过程的一些基础问题

客户端A在和服务器进行TCP/IP通信时,发送和接收数据使用的是同一个端口吗? 这个问题可以这样来思考:在客户端A与服务器B建立连接时,A需要指定一个端口a向服务器发送数据。当服务器接收到A的报文时,从报文头部解析出A的…

电脑开启虚拟化如何查看自己的主机主板型号

问题描述 在使用virtualbox、vmware安装虚拟机的时候,需要本机电脑能够支持虚拟化。 但是不同厂家的主机(主板)幸好并不一致,所以需要先了解自己的电脑主板型号 操作方法 1、win r 键打开运行窗口,输入cmd并确定打开…

mysql原理--InnoDB的Buffer Pool

1.缓存的重要性 对于使用 InnoDB 作为存储引擎的表来说,不管是用于存储用户数据的索引(包括聚簇索引和二级索引),还是各种系统数据,都是以 页 的形式存放在 表空间 中的,而所谓的 表空间 只不过是 InnoDB 对…

计算机基础面试题 |14.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

SpringBoot-项目引入Redis依赖

在使用Spring Boot开发应用时,可以使用Redis来实现缓存、分布式锁等功能。在编写业务逻辑代码时,可以通过注入RedisTemplate或StringRedisTemplate对象来操作Redis,如存取数据、设置过期时间、删除数据等。同时,还可以使用Redis的…

蓝桥杯基础知识2 全排列 next_permutation(), prev_permutation()

蓝桥杯基础知识2 全排列 next_permutation()&#xff0c; prev_permutation() #include<bits/stdc.h> using namespace std;int a[10];int main(){for(int i 1; i < 4; i)a[i] i; //4*3*2*1 24bool tag true;while(tag){for(int i1; i < 4; i)cout << a[…

RedisInsight - Redis官方可视化工具

一、RedisInsight 简介 RedisInsight 是一个直观高效的 Redis GUI 管理工具&#xff0c;它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控&#xff0c;并且可以在界面上使用 CLI 和连接的 Redis 进行交互&#xff08;RedisInsight 内置对 Redis 模块支持&#…

【Java EE初阶九】多线程进阶一(锁策略)

前言 锁的策略&#xff1a;加锁过程中&#xff0c;即处理冲突的过程中&#xff0c;需要涉及到的一些不同的处理方式&#xff08;此处锁策略并不是java独有的&#xff09;&#xff0c;本篇内容主要是讲解一下关于锁的相关知识点&#xff1b; 1. 关于锁的分组 1.1 第一组&#x…

【Docker】容器的相关命令

上一篇&#xff1a;创建&#xff0c;查看&#xff0c;进入容器 https://blog.csdn.net/m0_67930426/article/details/135430093?spm1001.2014.3001.5502 目录 1. 关闭容器 2.启动容器 3.删除容器 4.查看容器的信息 查看容器 1. 关闭容器 从图上来看&#xff0c;容器 aa…