【MATLAB】进阶绘图 ( 双 y 轴图形 | plotyy 函数 | Histogram 统计图形 | hist 函数 )

2023-03-29 09:59:01 浏览数 (2)

文章目录

  • 一、双 y 轴图
    • 1、plotyy 函数
    • 2、使用场景
    • 3、代码示例
  • 二、Histogram 统计图形
    • 1、hist 函数
    • 2、代码示例

一、双 y 轴图


1、plotyy 函数

plotyy 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/plotyy.html ( 过时了 , 这里简单介绍下 , 官方推荐使用 yyaxis 函数 )

plotyy 函数绘制的坐标轴图形有两个 y 轴 ;

plotyy 语法 : 返回值有 3 个元素 ;

  • AX 是坐标系 axis 句柄值 ;
  • 曲线 1 的句柄值是 H1 ;
  • 曲线 2 的句柄值是 H2
代码语言:javascript复制
% 使用 plotyy 绘制两条曲线
% AX 是坐标系 axis 句柄值
% 曲线 1 的句柄值是 H1
% 曲线 2 的句柄值是 H2
[AX, H1, H2] = plotyy(x, y1, x, y2);

2、使用场景

使用场景 :

绘制如下公式 :

y = a e^{-bx} sin(cx)

同时绘制不同的

a,b, c

参数的曲线 ,

曲线

1

:

y = 200 e^{-0.05x} sin(x)

曲线

2

:

y = 0.8 e^{-0.5x} sin(10x)

在一个坐标轴图中 , 两个曲线的取值范围差距过大 , 曲线

1

取值范围

[-200 , 200]

, 曲线

2

取值范围

[-0.8, 0.8]

, 如果使用相同的坐标系 , 如果在

[-200 , 200]

的坐标轴上绘制曲线

2

基本就看不到了 ;

3、代码示例

代码示例 :

代码语言:javascript复制
% x 轴取值
x = 0 : 0.01 : 20;

% 曲线 1 对应的 y 值
y1 = 200 * exp (-0.05 * x) .* sin(x);

% 曲线 2 对应的 y 值
y2 = 0.8 * exp (-0.5 * x) .* sin(10 * x);

% 使用 plotyy 绘制两条曲线
% AX 是坐标系 axis 句柄值
% 曲线 1 的句柄值是 H1
% 曲线 2 的句柄值是 H2
[AX, H1, H2] = plotyy(x, y1, x, y2);

% 修改坐标轴标注 , 通过 AX 句柄值设置左右两侧 y 轴标注
set(get(AX(1), 'Ylabel'), 'String', '左侧 Y1 曲线');
set(get(AX(2), 'Ylabel'), 'String', '右侧 Y2 曲线');

% 设置标题
title('双 y 轴曲线');

% 设置曲线 1 样式 , 使用 H1 句柄设置 , 虚线
set(H1, 'LineStyle', '--');

% 设置曲线 2 样式 , 使用 H1 句柄设置 , 实线
set(H2, 'LineStyle', '-');

绘图结果 :

二、Histogram 统计图形


1、hist 函数

hist 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/hist.html

2、代码示例

代码示例 :

代码语言:javascript复制
% 随机生成 1 ~ 1000 之间的数字
y = randn (1, 1000);

% 绘制图像 1 
subplot (2, 1, 1);

% 绘制直方图 , 10 个元素
hist (y, 10);

% 绘制图像 2
subplot (2, 1, 2);

% 绘制直方图 , 50 个元素
hist (y, 50);

绘图结果 :

0 人点赞