半对数图( y 轴有对数刻度)
semilogy(
在
x
轴上使用线性刻度、在
y
轴上使用以 10 为底的对数刻度来绘制
x
和
y
坐标。
X
,
Y
)
要绘制由线段连接的一组坐标,请将
X
和
Y
指定为相同长度的向量。
要在同一组坐标区上绘制多组坐标,请将
X
或
Y
中的至少一个指定为矩阵。
semilogy(
绘制
Y
)
Y
对一组隐式
x
坐标的图。
如果
Y
是向量,则
x
坐标范围从 1 到
length(Y)
。
如果
Y
是矩阵,则对于
Y
中的每个列,图中包含一个对应的行。
x
坐标的范围是从 1 到
Y
的行数。
如果
Y
包含复数,
semilogy
绘制
Y
的虚部对
Y
的实部的图。但是,如果您同时指定了
X
和
Y
,MATLAB
®
会忽略虚部。
semilogy(
___
,
使用一个或多个名称-值参量指定
Name,Value
)
Line
属性。这些属性应用于绘制的所有线条。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅
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')
当您仅指定一个坐标向量时,
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
自 R2022a 开始
基于表数据绘图的一种便捷方法是将表传递给
semilogy
函数,并指定要绘制的变量。
创建一个包含两个变量的表。然后显示该表的前三行。
Input = (1:100)'; Output = Input.^2; tbl = table(Input,Output); head(tbl,3)
Input Output _____ ______ 1 1 2 4 3 9
在
x
轴上绘制
Input
变量,在
y
轴上绘制
Output
变量。以
p
形式返回
Line
对象,并打开坐标区网格。请注意,轴标签与变量名称匹配。
p = semilogy(tbl,"Input","Output"); grid on
要修改线条的各个方面,请对
Line
对象设置
LineStyle
、
Color
和
Marker
属性。例如,将线条更改为具有点标记的红色点线。
p.LineStyle = ":"; p.Color = "red"; p.Marker = ".";
自 R2022a 开始
创建包含三个变量的表。然后显示表中的前三行。
Input = (1:100)'; Output1 = Input.^2; Output2 = Input.^3; tbl = table(Input,Output1,Output2); head(tbl,3)
Input Output1 Output2 _____ _______ _______ 1 1 1 2 4 8 3 9 27
在
x
轴上绘制
Input
变量,在
y
轴上绘制
Output1
和
Output2
变量。添加一个图例。请注意,图例标签与变量名称匹配。
semilogy(tbl,"Input",["Output1","Output2"]) grid on legend
创建一个采用
'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)
X
—
线性刻度坐标
线性刻度坐标,指定为标量、向量或矩阵。
X
的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。
绘图类型 | 如何指定坐标 |
---|---|
单点 |
将
semilogy(1,2,'o')
|
一组点 |
指定
semilogy([1 2 3],[4; 5; 6]) |
多组点
(使用向量) |
指定连续的多对
semilogy([1 2 3],[4 5 6],[1 2 3],[7 8 9]) |
多组点
(使用矩阵) |
如果所有组共享相同的 x 或 y 坐标,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如: semilogy([1 2 3],[4 5 6; 7 8 9])
semilogy
将为矩阵中的每列绘制一个线条。
也可以指定
semilogy([1 2 3; 4 5 6],[7 8 9; 10 11 12]) |
数据类型:
single
|
double
|
int8
|
int16
|
int32
|
int64
|
uint8
|
uint16
|
uint32
|
uint64
|
categorical
|
datetime
|
duration
Y
—
对数刻度坐标
对数刻度坐标,指定为标量、向量或矩阵。
Y
的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。
绘图类型 | 如何指定坐标 |
---|---|
单点 |
将
semilogy(1,2,'o')
|
一组点 |
指定
semilogy([1 2 3],[4; 5; 6]) |
多组点
(使用向量) |
指定连续的多对
semilogy([1 2 3],[4 5 6],[1 2 3],[7 8 9]) |
多组点
(使用矩阵) |
如果所有组共享相同的 x 或 y 坐标,请将共享坐标指定为一个向量,将其他坐标指定为一个矩阵。该向量的长度必须与该矩阵的维度之一相匹配。例如: semilogy([1 2 3],[4 5 6; 7 8 9])
semilogy
将为矩阵中的每列绘制一个线条。
也可以指定
semilogy([1 2 3; 4 5 6],[7 8 9; 10 11 12]) |
semilogy
在某些情况下可能会排除坐标:
如果对数刻度坐标包括正值和负值,则仅显示正值。
如果对数刻度坐标均为负值,所有值都带适当的符号显示在对数刻度上。
不显示零的对数刻度值。
数据类型:
single
|
double
|
int8
|
int16
|
int32
|
int64
|
uint8
|
uint16
|
uint32
|
uint64
LineSpec
—
线型、标记和颜色
线型、标记和颜色,指定为包含符号的字符串标量或字符向量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例:
"--or"
是带有圆形标记的红色虚线。
线型 | 描述 | 表示的线条 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"-"
|
实线 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"--"
|
虚线 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
":"
|
点线 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"-."
|
点划线 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 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"
|
|
MarkerFaceColor
—
标记填充颜色
"none"
(默认) |
"auto"
|
RGB 三元组
|
十六进制颜色代码
|
"r"
|
"g"
|
"b"
| ...
标记填充颜色,指定为
"auto"
、RGB 三元组、十六进制颜色代码、颜色名称或短名称。
"auto"
选项使用与父坐标区的
Color
属性相同的颜色。如果您指定
"auto"
,并且坐标区图框不可见,则标记填充颜色为图窗的颜色。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如
[0.4 0.6 0.7]
。
十六进制颜色代码是字符串标量或字符向量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是
0
到
F
。这些值不区分大小写。因此,颜色代码
"#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"
|
|
semilogy
函数基于坐标区的
ColorOrder
和
LineStyleOrder
属性选用颜色和线型。
semilogy
先对第一种线型循环使用每种颜色。然后,再对下一个线型循环使用每种颜色,以此类推。
通过在坐标区中设置
ColorOrder
或
LineStyleOrder
属性,可以在绘图后更改颜色和线型。您也可以调用
colororder
函数来更改图窗中所有坐标区的色序。
semilogy
函数通过将坐标区的
YScale
属性设置为
'log'
,以对数刻度绘制
y
坐标。但是,如果在调用
semilogy
之前坐标区的
hold
的状态为
'on'
,则属性不会更改,并且
y
坐标可能以线性刻度显示。
用法说明和限制:
此函数在分布式数组上运行,但在客户端 MATLAB 中执行。
有关详细信息,请参阅 使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox) 。
当您将表和一个或多个变量名称传递给
semilogy
函数时,轴和图例标签现在会显示表变量名称中包含的任何特殊字符,如下划线。以前,特殊字符会被解释为 TeX 或 LaTeX 字符。
例如,如果将包含名为
Sample_Number
的变量的表传递给
semilogy
函数,则下划线会出现在轴和图例标签中。在 R2022a 及更早版本中,下划线解释为下标。
版本 |
表变量
"Sample_Number"
的标签
|
---|---|
R2022b |
|
R2022a |
|
要显示具有 TeX 或 LaTeX 格式的轴和图例标签,请手动指定标签。例如,在绘制后,使用所需的标签字符串调用
xlabel
或
legend
函数。
xlabel("Sample_Number") legend(["Sample_Number" "Another_Legend_Label"])
semilogy
通过将表传递给
semilogy
函数并后跟要绘制的变量来创建图。当您将数据指定为表时,会自动使用表变量名称对轴标签和图例(如果有)进行标注。
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.