zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Matlab中semilogy函数使用

MATLAB 函数 使用
2023-09-11 14:14:48 时间

目录

语法

说明

示例

绘制一个线条

 绘制多个线条

 指定刻度位置、刻度标签和轴标签

将点绘制为不带线的标记 

 添加图例

 仅指定 y 坐标

 指定目标坐标区

 绘制后更改线条外观

 绘制不连续函数


        semilogy函数为半对数图(y 轴有对数刻度)

语法

semilogy(X,Y)
semilogy(X,Y,LineSpec)
semilogy(X1,Y1,...,Xn,Yn)
semilogy(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)
semilogy(Y)
semilogy(Y,LineSpec)
semilogy(___,Name,Value)
semilogy(ax,___)
lineobj = semilogy(___)

说明

semilogy(X,Y) 在 x 轴上使用线性刻度、在 y 轴上使用以 10 为底的对数刻度来绘制 x 和 y 坐标。

        要绘制由线段连接的一组坐标,请将 X 和 Y 指定为相同长度的向量。

        要在同一组坐标轴上绘制多组坐标,请将 X 或 Y 中的至少一个指定为矩阵。


semilogy(X,Y,LineSpec) 使用指定的线型、标记和颜色创建绘图。


semilogy(X1,Y1,...,Xn,Yn) 在同一组坐标轴上绘制多对 x 和 y 坐标。此语法可替代将坐标指定为矩阵的形式。

semilogy(Y) 绘制 Y 对一组隐式 x 坐标的图。

        如果 Y 是向量,则 x 坐标范围从 1 到 length(Y)。

        如果 Y 是矩阵,则对于 Y 中的每个列,图中包含一个对应的行。x 坐标的范围是从 1 到 Y 的行数。

        如果 Y 包含复数,semilogy 绘制 Y 的虚部对 Y 的实部的图。但是,如果同时指定了 X 和 Y,MATLAB® 会忽略虚部。

lineobj = semilogy(___) 返回一个 Line 对象或 Line 对象数组。创建绘图后,使用 lineobj 修改该绘图的属性。有关属性列表,请参阅 Line 属性。

示例

绘制一个线条

        创建一个由 x 坐标组成的向量和一个由 y 坐标组成的向量。创建 x 和 y 的对数线性图,并调用 grid 函数显示网格线。

x = 1:100;
y = x.^2;
semilogy(x,y)
grid on

 绘制多个线条

        创建一个由 x 坐标组成的向量和两个由 y 坐标组成的向量。通过将以逗号分隔的 x-y 对组传递给 semilogy 绘制两个线条。

x = 1:100;
y1 = x.^2;
y2 = x.^3;
semilogy(x,y1,x,y2)
grid on

 指定刻度位置、刻度标签和轴标签

        将向量 x 定义为 20 年期贷款的分期付款。将向量 y 定义为利率为 8% 的 1000 美元贷款的累积成本。绘制每期付款的累积成本。

P = 1000; 
npayments = 240;  
rate = 0.08/12; 
mpayment = P*(rate*(1+rate)^npayments)/(((1+rate)^npayments) - 1);
x = 1:240;
y = x * mpayment;
semilogy(x,y);
grid on

        通过调用 yticks 和 yticklabels 函数,更改 y 轴刻度值和刻度标签。然后通过调用 xlabel 和 ylabel 函数创建 x 和 y 轴标签。 

yticks([10 50 100 500 1000])
yticklabels({'$10','$50','$100','$500','$1000'})
xlabel ('Installment')
ylabel('Cumulate Cost')

将点绘制为不带线的标记 

        创建一组 x 和 y 坐标,并将它们绘制在一个对数线性图中。将线型指定为 'o' 以显示不带连接线的圆形标记。将标记填充颜色指定为 RGB 三元组 [0 0.447 0.741],它对应于深蓝色。

x = linspace(1,1000,15);
y = (1./x) * 10000;
semilogy(x,y,'o','MarkerFaceColor',[0 0.447 0.741])
grid on

 添加图例

        创建两组 x 坐标和 y 坐标,并将其显示在一个对数线性图中。为第一组坐标指定一条虚线。然后通过调用 legend 函数并将位置指定为 'northwest',在绘图的左上角显示图例。

x = 1:100;
y1 = x.^2;
y2 = x.^3;
semilogy(x,y1,'--',x,y2)
legend('x^2','x^3','Location','northwest')

 仅指定 y 坐标

        当仅指定一个坐标向量时,semilogy 会绘制这些坐标对值 1:length(y) 的图。例如,将 y 定义为一个由 5 个值组成的向量。创建 y 的对数线性图。

y = [0.1 0.2 1 10 1000];
semilogy(y)
grid on

         如果将 y 指定为矩阵,则绘制 y 的列对值 1:size(y,1) 的图。例如,将 y 定义为 5×3 矩阵,并将其传递给 semilogy 函数。生成的图包含 3 个线条,其中每个线条的 x 坐标都是从 1 到 5。

y = [ 0.1    1     10
      0.2    2     20
      1.0    10    100
      10     100   1000
      1000   10000 100000];

semilogy(y)
grid on

 指定目标坐标区

        创建一个采用 'flow' 图块排列方式的分块图布局,以便坐标区填充布局中的可用空间。接下来,调用 nexttile 函数创建一个坐标区对象,并返回它作为 ax1。然后通过将 ax1 传递给 semilogy 函数来显示对数线性图。

tiledlayout('flow')
ax1 = nexttile;
x = 1:100;
y1 = x.^2;
semilogy(ax1,x,y1)

         重复该过程以创建第二个对数线性图。

ax2 = nexttile;
y2 = 1./x;
semilogy(ax2,x,y2)

 绘制后更改线条外观

        创建一个包含两个线条的对数线性图,并以变量 slg 形式返回线条对象。

x = 1:100;
y1 = x.^2;
y2 = x.^3;
slg = semilogy(x,y1,x,y2);

         将第一个线条的宽度更改为 3,并将第二个线条的颜色更改为紫色。

slg(1).LineWidth = 3;
slg(2).Color = [0.4 0 1];

 绘制不连续函数

在数据中任何不连续的位置插入 NaN 值。semilogy 函数显示这些位置的空缺。

创建一对 x 坐标向量和 y 坐标向量。用 NaN 值替换第二十个 y 坐标。然后创建 x 和 y 的对数线性图。

x = 1:50;
y = x.^2;
y(20) = NaN;
semilogy(x,y)

 提示
        semilogy 函数基于坐标区的 ColorOrder 和 LineStyleOrder 属性选用颜色和线型。semilogy 先对第一种线型依序使用每种颜色,直至用尽。然后,再对下一个线型依序使用每种颜色,以此类推。

        通过在坐标区中设置 ColorOrder 或 LineStyleOrder 属性,可以在绘图后更改颜色和线型。您也可以调用 colororder 函数来更改图窗中所有坐标区的色序。