# 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 可以是指定 plot、semilogx、semilogy、loglog、stem 的函数句柄或字符向量,或者是能接受以下语法的任意 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 修改该绘图的属性。