2026a

# plotyy


创建具有两个 y 轴的图形

函数库: TyPlot

注意

不推荐使用 plotyy。请改用 yyaxis

# 语法

plotyy(X1,Y1,X2,Y2)

plotyy(X1,Y1,X2,Y2,function)

plotyy(X1,Y1,X2,Y2,"function1","function2")

plotyy(AX1,___)

(AX,H1,H2) = plotyy(___)

# 说明

plotyy(X1,Y1,X2,Y2) 绘制 Y1 对 X1 的图,在左侧显示 y 轴标签,并同时绘制 Y2 对 X2 的图,在右侧显示 y 轴标签。


plotyy(X1,Y1,X2,Y2,function) 使用指定的绘图函数生成图形。

function 可以是指定 plotsemilogxsemilogyloglogstem 的函数句柄或字符向量,或者是能接受以下语法的任意 Syslab 函数:

h = function(x,y)

例如,

plotyy(x1,y1,x2,y2,loglog) # 函数句柄
plotyy(x1,y1,x2,y2,"loglog") # 字符串

函数句柄能够用于访问用户定义的局部函数,并能提供其他优势。


plotyy(X1,Y1,X2,Y2,"function1","function2") 使用 function1(X1,Y1) 绘制左轴的数据,使用 function2(X2,Y2) 绘制右轴的数据。


plotyy(AX1,___) 使用第一组数据的 AX1 指定的坐标区(而不是使用当前坐标区)绘制数据。将 AX1 指定为单个坐标区对象或由以前调用 plotyy 所返回的两个坐标区对象的向量。如果您指定向量,则 plotyy 使用向量中的第一个坐标区对象。可以将此选项与前面语法中的任何输入参数组合一起使用。


(AX,H1,H2) = plotyy(___) 返回 AX 中创建的两个坐标区的句柄,以及 H1 和 H2 中每个绘图的图形对象的句柄。AX[1] 是左边的坐标区,AX[2] 是右边的坐标区。

# 示例

使用不同 y 轴绘制两个数据集

使用两个 y 轴在一个图上绘制两个数据集。

using TyPlot
x = 0:0.01:20
y1 = @. 200exp(-0.05x) * sin(x)
y2 = @. 0.8exp(-0.5x) * sin(10x)
figure()

plotyy(x,y1,x,y2)
添加标题和轴标签

使用两个 y 轴在一个图上绘制两个数据集。添加标题和轴标签。

using TyPlot
x = 0:0.01:20
y1 = @. 200exp(-0.05x) * sin(x)
y2 = @. 0.8exp(-0.5x) * sin(10x)

figure()
(hAx, hLine1, hLine2) = plotyy(x, y1, x, y2)

title("Multiple Decay Rates")
xlabel("Time (μsec)")
ylabel(hAx[1], "Slow Decay")
ylabel(hAx[2], "Fast Decay")
更改线型

使用两个 y 轴在一个图上绘制两个数据集。更改线型。

using TyPlot
x = 0:0.01:20
y1 = @. 200exp(-0.05x) * sin(x)
y2 = @. 0.8exp(-0.5x) * sin(10x)

figure()
(hAx, hLine1, hLine2) = plotyy(x, y1, x, y2)

hLine1[1].set_linestyle("--")
hLine2[1].set_linestyle(":")

plt_update()
组合不同类型的绘图

使用两个 y 轴在一个图上绘制两个数据集。对与左 y 轴关联的数据使用线图。对与右 y 轴关联的数据使用针状图。

using TyPlot
x = 0:0.1:10
y1 = @. 200exp(-0.05x) * sin(x)
y2 = @. 0.8exp(-0.5x) * sin(10x)

figure()

plotyy(x, y1, x, y2, plot, stem)
对两个数据集使用右 y 轴

使用两个 y 轴在一个图表上绘制三个数据集。绘制一个与左 y 轴关联的数据集。使用包含两列的矩阵绘制与右 y 轴关联的两个数据集。

using TyPlot
x = LinRange(0, 10, 100)

y1 = @. 200exp(-0.05x) * sin(x)
y2 = @. 0.8exp(-0.5x) * sin(10x)
y3 = @. 0.2exp(-0.5x) * sin(10x)

figure()
colororder(["#0072BD", "black"])
(hAx, hLine1, hLine2) = plotyy(x, y1, [x x], [y2 y3]);
newcolors = [(0.85, 0.33, 0.10), (0.93, 0.69, 0.13)]
colororder(newcolors)
hold("off")

# 输入参数

X - x坐标
标量 | 向量 | 矩阵

x 坐标,指定为标量、向量或矩阵。

Y - y坐标
标量 | 向量 | 矩阵

y 坐标,指定为标量、向量或矩阵。

function - 绘图函数
"plot"(默认) | 函数句柄 | 字符串

用于绘制数据的绘图函数,指定为函数句柄或作为绘图函数名称的字符串,例如,semilogx、semilogy、loglog、stem,或任何接受语法 h = function(x,y) 的 Syslab 函数。

示例: plotyy(x1,y1,x2,y2,loglog)

示例: plotyy(x1,y1,x2,y2,"loglog")

AX1 - 坐标区对象
坐标区对象

坐标区对象。如果未指定坐标区,则 plotyy 在当前坐标区中,或创建一个 Axes 对象(如果不存在)绘图。

# 输出参数

AX - 两个坐标区
坐标区对象数组

两个坐标区,以两个 Axes 对象数组形式返回。AX[1] 是左坐标区,而 AX[2] 是右坐标区。使用 AX 修改坐标区的属性。

H - 图形对象
图形对象

图形对象。创建绘图后,使用 H 修改该绘图的属性。

# 另请参阅

linkaxes | loglog | plot | semilogx | semilogy | yyaxis