不懂先生

matlab绘图
二维曲线plot函数(1)plot函数的基本用法plot(x,y),其中x和y分别用用于存储x坐标和y坐标数据。(...
扫描右侧二维码阅读全文
08
2021/09

matlab绘图

二维曲线

plot函数

(1)plot函数的基本用法

plot(x,y),其中x和y分别用用于存储x坐标和y坐标数据。
98322-78s5wmpanag.png

(2)最简单的plot函数调用格式

23002-mehh7iefmm.png
横坐标是1,2,3,4 ...,纵坐标是x向量的值
当plot函数的参数x是负数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线。
29852-tcp2scxj3ps.png

(3)plot(x,y)函数参数的变化形式

  • 当x时向量,y是矩阵时

    • 如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每一行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
    • 如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。
【示例】

68651-caqej7amm4t.png
其中x是由linspace函数生成的有一百个元素的行向量
y由三个行向量构成,行向量的长度与x相同

-当x、y是同型矩阵时

以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
42079-hdm9inay86.png
第二行t1=t'的意思是:t1是t的转置

转置函数:把矩阵横竖倒置

40039-4gzkjo7e7af.png

(4)含多个输入参数的plot函数

05892-y0qqtcep4cd.png
【示例】
75065-nbioppyan4k.png

(5)含选项的plot函数

34393-aj72zs3u3pp.png
95673-yljcc6fwk7h.png
【示例】
92460-o73yeryd9ur.png

fplot函数

  1. 可根据参数函数的变化特性,自适应的设置采样间隔
  2. 当函数值变化缓慢时,自设置的的采样间隔大;当函数值变化急剧时,自设置的采样间隔小

(1)fplot函数的基本用法

fplot(f,lims,选项)
其中f代表一个函数,通常采用函数句柄的形式。lims为x走的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。选项定义与plot函数相同
【示例】
68012-9geosm3v9aw.png

(2)双输入函数参数的用法

fplot(funx,funy,tlims,选项)
其中,funx、funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量取值范围,用二元向量[tmin,tmax]描述。
【示例】
57889-l6poj0125zq.png

绘制图形的辅助工具

1.给图形添加标注

①title函数的基本用法

title(图形标题)
52900-ibhx5adil3d.png
如果要加多行标题则:

②在图形标题中使用LaTeX格式控制符

55061-wunl8m2d5h.png

③含属性设置的title函数

title(图形标题,属性名,属性值)

  • Color属性:用于设置图形标题文本的颜色。

    title('y=cos{\omega}t','Color','r')
  • FontSize属性:用于设置标题文字的字号
    title('y=cos{omega}t','FontSize',24)

2.xlabel函数和ylabel函数

  • xlabel(x轴说明)
    39585-04crof9h8wzl.png
  • ylabel(y轴说明)
    ylabel('-2pi leq x leq 2pi')

3.text函数和gtext函数

  • text(x,y,图形说明)
    07786-irvolrlxmf8.png

其中红色字体leftarrow的意思是左箭头

  • gtext(说明):它是在括号内输入说明后,在图形上自己选择位置进行标注

4.legend(图例1,图例2,...)

65824-c8r41xuad6m.png
执行命令后:
05006-ogusopwl7i.png
出现了曲线区别的标注

2.坐标控制

(1)axis函数

90488-srjhqom3cmh.png
【示例】
12053-66bqau1d0ek.png
为了得到封闭图形需要x和y首尾都相同,这样得到一个横纵坐标相同的框
第四条axis语句的意思是框框的横纵起始位置都是-0.1,终止位置都是1.1
第五条语句的意思是让横纵坐标采用等长刻度
50193-5068xbuxzp4.png

axis其他用法

56619-xm6o74kbwmc.png

(2)给坐标系加网格和边框
1.加网格
  • grid on
  • grid off
  • grid
2.加边框
  • box on
  • box off
  • box
【示例】

13346-1mhkvl57xui.png

3.图形保持(图形保持命令:hold)

  • hold on 控制保持原有图形,就是在生成一个图后,在生成的话如果没有hold 那么第一个生成的图就会消失
  • hold off 控制刷新图形窗口
  • hold 控制在两种状态之间进行切换
    【示例】

08122-zhqm6pchltb.png

4.图形窗口的分割

  • 子图:同一图形窗口中的不同坐标系下的图形称为子图
【示例】
第一块
subplot(2,2,1)
x = linspace(0,2*pi,60)
y = sin(x)
plot(x,y)
title('sin(x)')
axis([0,2*pi,-1,1])
subplot(2,2,2)
第二块
x = linspace(0,2*pi,60)
y = cos(x)
plot(x,y)
title('cos(x)')
第三块
subplot(2,2,3)
x = linspace(0,2*pi,100)
y = tan(x)
plot(x,y)
title('tan(x)')
axis([0,6,-10,10])
第四块
subplot(2,2,4)
x = linspace(0,2*pi,100)
y = pi*x
plot(x,y)
title('y=Πx')
效果如下

08290-3eb51uerxeg.png
【其他示例】
19092-v3wplaxv9so.png

其他形式的二维图形

(1)对数坐标图

84853-mtlxt0vj818.png
semilogx使用半对数坐标x轴为为常用对数刻度,而y轴保持线性刻度,也就是x轴的刻度是对数,二y轴的刻度是整数数字
semilogy使用半对数坐标y轴为为常用对数刻度,而x轴保持线性刻度
loglog使用全对数坐标,x、y轴都用常用对数刻度

【示例】

20440-a6tbmjm114h.png

代码如下
x = 0:0.1:10;
y = 1./x;
subplot(2,2,1)
plot(x,y)
title('plot(x,y)')
subplot(2,2,2)
semilogx(x,y)
title('semilogx(x,y)')
subplot(2,2,3)
semilogy(x,y)
title('semilogy(x,y)')
grid on
subplot(2,2,4)
loglog(x,y)
title('loglog(x,y)')
grid on
效果如下

24288-p8qbwbjhcm.png

(2)极坐标图

polar(theta,rhop,选项)
其中,theta为极角,rho为极径,选项的内容与plot函数相同。

【示例】

40171-2wkd3bztxvs.png

(3)统计图

条形类图形

1.条形图
bar 函数
bar(y,style)

其中,参数y是数据,选项style用于指定分组排列模式,有“grouped”:簇状分组和“stacked”:堆积分组,默认是簇状分组形式。

【示例】

41159-t6n6zwhugtj.png

代码如下:
>> y = [1,2,3,4,5;1,2,1,2,1;5,4,3,2,1]

y =

     1     2     3     4     5
     1     2     1     2     1
     5     4     3     2     1

>> subplot(1,2,1)
>> bar(y)
>> title('Group')
>> hold on
>> subplot(1,2,2)
>> bar(y,'stacked')
>> title('Stack') 
效果如下:

28626-nreaq0946yc.png

bar(x,y,style)

其中,x存储横坐标,y存储数据。

set(gca,'XTICK',[1:21])指定页面显示的X轴刻度范围
>> set(gca,'XTicklabel',E)修改X坐标标签内容
【示例】

86756-19ogg137aqu.png
代码如下:

>> x = [2015,2016,2017]

x =

        2015        2016        2017

>> y = [68,80,115,98,102;75,88,102,99,110;81,86,125,105,115]

y =

    68    80   115    98   102
    75    88   102    99   110
    81    86   125   105   115

>> bar(x,y)
>> title(''Group)
>> title('Group')
效果如下:

42851-l0j7ab2g59e.png
其中y的每一行对应一年的销售数据,

  • barh函数
2.直方图
hist函数

hist(y) hist(y,x)
其中,参数y是要统计的数据,x用于指定区间的划分方式,若x是标量则均分成x个小区间,若x是向量,则向量x的每一个数都是指定分组的中心值,元素的个数为数据分组数。x缺省时默认按10个等分区间进行统计

【示例】

60183-j21zgyu62wh.png

代码如下:
y = randn(500,1)
subplot(2,1,1)
hist(y)
title('高斯分布直方图')
subplot(2,1,2)
x=-3:0.2:3
hist(y,x)
title('指定区间中心点的直方图')
效果如下

67807-n7v9ki03vl.png
rose函数
用于绘制极坐标系下的直方图,也叫做玫瑰花图
rose(theta,x)
其中,参数theta用于确定每一区间与远点的角度,选项x用于指定区间的划分方式。

图像拟合

39789-tiaye516v89.png

应用

杨辉三角

A = pascal(5)
输出
A =

     1     1     1     1     1
     1     2     3     4     5
     1     3     6    10    15
     1     4    10    20    35
     1     5    15    35    70
Last modification:January 18th, 2022 at 04:26 pm

Leave a Comment