一文搞懂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 条评论
登录 后参与评论

相关文章

来自专栏前端儿

鸡兔同笼

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。

751
来自专栏1039778的专栏

Python 数据分析学习笔记

一、基本语法 [1507772432114_7239_1507772402948.jpg] 资料地址:http://www.icoolxue.com/albu...

1886
来自专栏生信小驿站

黑箱方法 支持向量机②

发现type为C-classification和radial 及 linear等时error最低

652
来自专栏和蔼的张星的图像处理专栏

opencv操作图像像素和通道

老师让我评价一下别人的一个跟踪效果,只有带跟踪框的视频,所以需要检测这个框,用了下投影,最早用matlab写的一个脚本,很简单,转到opencv里反而有些麻烦,...

801
来自专栏C语言及其他语言

【每日一题】蛇行矩阵

题号:1097 题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入 本题有多组数据,每组数据由一个正整数N组成。(N不大于100) 输出...

3298
来自专栏iOSDevLog

连续值和缺省值的处理

1044
来自专栏Python中文社区

Python用Pillow(PIL)进行简单的图像操作

專 欄 ❈ sunhaiyu,Python中文社区专栏作者 专栏地址: http://www.jianshu.com/u/4943cb2c6ea4 ❈ Pyt...

26610
来自专栏我是攻城师

opencv里面直方图的意义

3106
来自专栏瓜大三哥

图像分割(六)

图像分割(六) 之基于FPGA的局部自适应分割 子模块设计 顶层模块gauss_segment_2d 有了以上几个模块,顶层设计就十分简单了。需要例化一个均值...

20510
来自专栏人工智能LeadAI

使用TensorFlow实现手写识别(Softmax)

准备工作 由于将TensorFlow安装到了Conda的tensorflow环境,虽然可以用Jupyter notebook打开,但是没有提示,写代码不方便,所...

3595

扫码关注云+社区