Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

loglog

双对数刻度图

说明

示例

loglog(X,Y) 在 x 轴和 y 轴上应用以 10 为底的对数刻度来绘制 x 和 y 坐标。

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

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

示例

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

示例

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

示例

loglog(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) 可为每个 x-y 对组指定特定的线型、标记和颜色。您可以对某些 x-y 对组指定 LineSpec,而对其他对组省略它。例如,loglog(X1,Y1,'o',X2,Y2) 对第一个 x-y 对组指定标记,但没有对第二个对组指定标记。

示例

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

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

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

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

loglog(Y,LineSpec) 指定线型、标记和颜色。

示例

loglog(___,Name,Value) 使用一个或多个 Name,Value 对组参数指定 Line 属性。这些属性应用于绘制的所有线条。需要在上述任一语法中的所有参数之后指定 Name,Value 对组。有关属性列表,请参阅 Line 属性

示例

loglog(ax,___) 在目标坐标区上显示绘图。将坐标区指定为上述任一语法中的第一个参数。

示例

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

示例

全部折叠

x 定义为一个由区间 [10-1,102] 内的 50 个对数间距数组成的向量。将 y 定义为 2x。然后绘制 xy,并调用 grid 函数显示网格线。

x = logspace(-1,2);
y = 2.^x;
loglog(x,y)
grid on

Figure contains an axes. The axes contains an object of type line.

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

x = logspace(-1,2);
y1 = 10.^x;
y2 = 1./10.^x;
loglog(x,y1,x,y2)
grid on

Figure contains an axes. The axes contains 2 objects of type line.

您也可以通过将 y 指定为矩阵来用一个 x-y 对组创建相同的图:loglog(x,[y1;y2])

创建一组 x 坐标和 y 坐标,并将其显示在双对数图中。

x = logspace(-1,2,10000);
y = 5 + 3*sin(x);
loglog(x,y)

Figure contains an axes. The axes contains an object of type line.

调用 yticks 函数,沿 y 轴以将 y 轴刻度值置于整数增量值位置。然后通过调用 xlabelylabel 函数创建 xy 轴标签。

yticks([3 4 5 6 7])
xlabel('x')
ylabel('5 + 3 sin(x)')

Figure contains an axes. The axes contains an object of type line.

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

x = logspace(-1,2,20);
y = 10.^x;
loglog(x,y,'s','MarkerFaceColor',[0 0.447 0.741])
grid on

Figure contains an axes. The axes contains an object of type line.

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

x = logspace(-1,2,10000);
y1 = 5 + 3*sin(x/4);
y2 = 5 - 3*sin(x/4);
loglog(x,y1,x,y2,'--')
legend('Signal 1','Signal 2','Location','northwest')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Signal 1, Signal 2.

当您仅指定一个坐标向量时,loglog 会绘制这些坐标对值 1:length(y) 的图。例如,将 y 定义为一个由 0.001100 之间的 6 个值组成的向量。创建 y 的双对数图。

y = [0.001 0.01 0.1 1 10 100];
loglog(y)
grid on

Figure contains an axes. The axes contains an object of type line.

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

y = [0.0010    0.0100    0.1000
     0.0100    0.1000    1.0000
     0.1000    1.0000   10.0000
     1.0000   10.5000  100.0000
    10.0000  100.0000 1000.0000];

loglog(y)
grid on

Figure contains an axes. The axes contains 3 objects of type line.

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

tiledlayout('flow')
ax1 = nexttile;
x = logspace(-1,2);
y1 = 10.^x;
loglog(ax1,x,y1)

Figure contains an axes. The axes contains an object of type line.

重复该过程以创建第二个坐标区对象和第二个双对数图。

ax2 = nexttile;
y2 = 1./10.^x;
loglog(ax2,x,y2)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

x = logspace(-1,2);
y1 = 10.^x;
y2 = 1./10.^x;
lg = loglog(x,y1,x,y2);

Figure contains an axes. The axes contains 2 objects of type line.

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

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

Figure contains an axes. The axes contains 2 objects of type line.

输入参数

全部折叠

x 坐标,指定为标量、向量或矩阵。X 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

XY 指定为标量,并包含一个标记。例如:

loglog(1,2,'o')

一组点

指定 XY 为相同长度的行向量或列向量的任意组合。例如:

loglog([1 2 3],[4; 5; 6])

多组点
(使用向量)

指定连续的多对 XY 向量。例如:

loglog([1 2 3],[4 5 6],[1 2 3],[7 8 9])

多组点
(使用矩阵)

如果所有组共享相同的 x 或 y 坐标,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如:

loglog([1 2 3],[4 5 6; 7 8 9])
如果矩阵是方阵,loglog 将为矩阵中的每列绘制一个线条。

也可以指定 XY 为相同大小的矩阵。在本例中,loglog 绘制 Y 的每列对 X 的对应列的图。例如:

loglog([1 2 3; 4 5 6],[7 8 9; 10 11 12])

loglog 在某些情况下可能会排除坐标:

  • 如果坐标包括正值和负值,则仅显示正值。

  • 如果坐标均为负值,所有值都带适当的符号显示在对数刻度上。

  • 不显示零值。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y 坐标,指定为标量、向量或矩阵。Y 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

XY 指定为标量,并包含一个标记。例如:

loglog(1,2,'o')

一组点

指定 XY 为相同长度的行向量或列向量的任意组合。例如:

loglog([1 2 3],[4; 5; 6])

多组点
(使用向量)

指定连续的多对 XY 向量。例如:

loglog([1 2 3],[4 5 6],[1 2 3],[7 8 9])

多组点
(使用矩阵)

如果所有组共享相同的 x 或 y 坐标,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如:

loglog([1 2 3],[4 5 6; 7 8 9])
如果矩阵是方阵,loglog 将为矩阵中的每列绘制一个线条。

也可以指定 XY 为相同大小的矩阵。在本例中,loglog 绘制 Y 的每列对 X 的对应列的图。例如:

loglog([1 2 3; 4 5 6],[7 8 9; 10 11 12])

loglog 在某些情况下可能会排除坐标:

  • 如果坐标包括正值和负值,则仅显示正值。

  • 如果坐标均为负值,所有值都带适当的符号显示在对数刻度上。

  • 不显示零值。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

示例: '--or' 是带有圆形标记的红色虚线

线型说明
-实线
--虚线
:点线
-.点划线
标记说明
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'_'水平线条
'|'垂直线条
's'方形
'd'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'p'五角形
'h'六角形
颜色说明

y

黄色

m

品红色

c

青蓝色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

目标坐标区,指定为 Axes 对象。如果不指定坐标区,且当前坐标区是笛卡尔坐标区,则 loglog 将使用当前坐标区。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: loglog([1 2],[3 4],'Color','red') 为绘图指定一条红色线条。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 Line 属性

颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。您指定的颜色会设置线条颜色。当 MarkerEdgeColor 属性设置为 'auto' 时,它还会设置标记边颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。

标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。

标记轮廓颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'auto' 使用与 Color 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

标记填充颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 选项使用与父坐标区的 Color 属性相同的颜色。如果您指定 'auto',并且坐标区图框不可见,则标记填充颜色为图窗的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

提示

  • 使用 NaNInf 在线条中创建断点。例如,以下代码绘制一条在 y=2y=4 之间具有一个断点的线条。

     loglog([1 2 3 4 5],[1 2 NaN 4 5])

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

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

算法

loglog 函数通过将坐标区的 XScaleYScale 属性设置为 'log',以对数刻度绘制坐标。但是,如果在您调用 loglog 之前坐标区的 hold 状态为 'on',则这些属性不会更改,并且绘图可能以线性或半对数刻度显示。

扩展功能

另请参阅

函数

属性

在 R2006a 之前推出