一文搞懂Matlab画图那些事(上篇)

题记:临时需要Matlab画个曲线图,突然发现有些命令竟然忘掉了,于是各种查。这里博主整理合并关于画图那些命令,只为让你轻松搞定Matlab画图这些琐事,那么,来吧! 说明:本博文主要是二维图形的绘制,二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。

一 绘图常用函数

plot函数详谈 常见的plot函数的格式有plot(Y),plot(X1,Y1),plot(x,y1,x,y2),plot(X1,Y1,LineSpec,…)

A. plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线。

>> y=[0 0.58 0.70 0.95 0.83 0.25];
>> plot(y)

B. plot(X1,Y1)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。

>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值
>> y=sin(x);
>> plot(x,y)

C.plot(x,y1,x,y2)画多条曲线,适用于不同方法下的对比的情况。 另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。 在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。

>> x=0:pi/100:2*pi; %X的区间设置为0到2
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)

D. plot(X1,Y1,LineSpec,…)通过参数LineSpec指定曲线的曲线属性,它包括线型、标记符和颜色。plot函数支持同时绘制任意组图形。

>> plot(x,y,'r','LineWidth',0.5);
% 颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.
% 线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线
% 线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆
>> x=0:pi/100:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,'go',x,y2,'b-.')
%其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

二 绘图辅助函数

图形标记的困惑

在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。

>> title(‘加图形标题’); %当前轴的正上方居中位置处输出文本作为标题    
>> xlabel('加X轴标记');     
>> ylabel('加Y轴标记');       
>> text(X,Y,'添加文本');
>> grid; %添加网格
%%%实例%%%%%
>> text(2.5,0.7,’sinx’)  %在横坐标2.5,纵坐标0.7处标记sinx文字
>> text(10,0.6,'\leftarrow CNN');   %标注时候加上左箭头的标记
>> gtext(‘sinx’) %用鼠标来确定字符串的位置

另外在生成的图的时候,有时背景颜色我们不需要默认的灰色,而改成其他颜色,则见下面的命令:

set(gcf,'Color',[1 1 1]);  %将背景设置为白色

坐标系的烦恼

在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有: axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis(‘equal’) x轴和y轴的单位长度相同 axis(‘off’) 清除坐标刻度

>> axis([0 6 0 1])  %X轴0~6,y轴0~1
>> subplot(m,n,p) 
%多幅图形,可以在同一个画面上建立几个坐标系, 用命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图

实例

x = [0,10,20,30,40];
y = [0,0.6,0.8,0.9,0.96];
scatter(x,y,1,'k');
plot(x,y,'r','LineWidth',0.5);
axis([0 40 0 1]);  
title('不同方法结果对比');
%坐标轴上面标注内容
xlabel('迭代次数'),ylabel('测试精度');
text(10,0.6,'\leftarrow CNN');   %在曲线任意位置加上text
legend('CNN','MPCNN');  %在图上加上标注,并且可以随意拖动

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏calmound

CSS继承特殊

继承 CSS的某些样式具有继承性。 继承是一种规则,它允许样式不仅作用于某个特定html标签元素,而且应用于其后代    如:在p中的所有字体都为红色     ...

2845
来自专栏生信技能树

用python编写验证码

作为一个用python的生信工程师,平时工作中除了用python来处理些文本文件和搭建流程,没事也想探索些其他有趣的功能。这几天就在网上学习了下如何用pytho...

4275
来自专栏移动端周边技术扩展

Masonry横向纵向排列多个控件

2023
来自专栏JackeyGao的博客

使用Python将两张照片透明重叠

透明重叠最主要用的是Image.blend方法(详情请看第二个代码块), 第一个代码块主要是将多个图片剪切到一张大图, 然后用这张大图和另外一张非剪切的大图进行...

3421
来自专栏柠檬先生

grid 布局的使用

grid 布局的使用    css 网格布局,是一种二维布局系统。    浏览器支持情况:老旧浏览器不支持,    概念: 网格容器。元素应用dispalay:...

2417
来自专栏谦谦君子修罗刀

ios约束

一、苹果的VFL语法约束 在使用约束之前,要先将没有设置frame的view添加到父视图上。如何将view设置为使用AutoLayout约束,取消默认约束。 ...

3275
来自专栏Petrichor的专栏

opencv: 阈值处理(cv2.threshold) 探究(图示+源码)

左半边为(单通道)源图片; 右半边为(阈值设为150,填充色设为100)在 不同阈值类型 的取值下生成的(单通道)阈值处理图片。

2904
来自专栏杂七杂八

Matplotlib 绘2D图

Matplotlib 是一个非常简单而又完善的开源绘图库。那么它到底有多简单呢? 基本知识 首先官方文档奉上 下面,我们通过 3 行代码绘制一张简单的折线图...

6945
来自专栏图形学与OpenGL

4.4.2 OpenGL几何变换编程实例

/* 三维旋转变换,参数:旋转轴(由点p1和p2定义)和旋转角度(thetaDegrees)*/

1682
来自专栏图形学与OpenGL

6.5编程实例-立方体透视投影

GLint winWidth = 600, winHeight = 600; //设置初始化窗口大小

2221

扫码关注云+社区

领取腾讯云代金券