# plot
二维线图
函数库: TyPlot
# 语法
plot(X,Y)
plot(X,Y,fmt)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,fmt1,...,Xn,Yn,fmtn)
plot(Y)
plot(Y,fmt)
plot(___,Key=Value)
plot(ax,___)
h = plot(___)
# 说明
plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。
- 如果 X 和 Y 都是向量,则它们的长度必须相同。plot 函数绘制 Y 对 X 的图;
- 如果 X 和 Y 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图;
- 如果 X 或 Y 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图; 如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。
- 如果 X 或 Y 之一为标量,而另一个为标量或向量,则 plot 函数会绘制离散点。但是,要查看这些点,您必须指定标记符号,例如 plot(X,Y,"o")。示例
plot(X1,Y1,...,Xn,Yn) 绘制多个X、Y对组的图,所有线条都使用相同的坐标区。示例
plot(X1,Y1,fmt1,...,Xn,Yn,fmtn) 设置每个线条的线型、标记符号和颜色。您可以混用 X、Y、fmt 三元组和 X、Y 对组:例如,plot(X1,Y1,X2,Y2,fmt2,X3,Y3)。示例
plot(Y) 创建 Y 中数据对每个值索引的二维线图。示例
- 如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y);
- 如果 Y 是矩阵,则 plot 函数绘制 Y 中各列对其行号的图。x 轴的刻度范围是从 1 到 Y 的行数;
- 如果 Y 是复数,则 plot 函数绘制 Y 的虚部对 Y 的实部的图,使得 plot(Y) 等效于 plot(real(Y),imag(Y))。
plot(___,Key=Value) 使用一个或多个 Key=Value 对组参数指定线条属性。有关属性列表,请参见 line 属性。可以将此选项与前面语法中的任何输入参数组合一起使用。名称-值对组设置将应用于绘制的所有线条。示例
plot(ax,___) 将在由 ax 指定的坐标区中,而不是在当前坐标区(gca)中创建线条。选项 ax 可以位于前面的语法中的任何输入参数组合之前。示例
h=plot(___) 返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用 h 修改其属性,请参见 line 属性。示例
# 示例
创建线图
将 x 创建为由 0 和 2π 之间的线性间隔值组成的向量。在各值之间使用递增量 π/100。将 y 创建为 x 的正弦值。创建数据的线图。
using TyPlot
x = 0:pi/100:2*pi;
y = sin.(x);
plot(x,y)

绘制多个线条
将 x 定义为 100 个介于 −2π 和 2π 之间的线性间隔值。将 y1 和 y2 定义为 x 的正弦和余弦值。创建上述两个数据集的线图。
using TyPlot
x = LinRange(-2 * pi, 2 * pi, 100);
y1 = sin.(x);
y2 = cos.(x);
figure();
plot(x, y1, x, y2)

根据矩阵创建线图
将 Y 定义为 4×4 矩阵。创建 Y 的二维线图。将矩阵的每一列绘制为单独的线条。
using TyPlot
Y = [
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
]
figure();
plot(Y)

指定线型
绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条曲线使用默认的线型。为第二条曲线指定虚线样式,第三条曲线指定点式线样式。
using TyPlot
x = 0:(pi / 100):(2 * pi);
y1 = sin.(x);
y2 = sin.(x .- 0.25);
y3 = sin.(x .- 0.5);
figure();
plot(x, y1, x, y2, "--", x, y3, ":")

指定线型、颜色和标记
绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条正弦曲线使用绿色线条,不带标记。第二条正弦曲线使用蓝色虚线,带圆形标记。第三条正弦曲线只使用青蓝色星号标记。
using TyPlot
x = 0:(pi / 10):(2 * pi);
y1 = sin.(x);
y2 = sin.(x .- 0.25);
y3 = sin.(x .- 0.5);
figure();
plot(x, y1, "#00FF00", x, y2, "b--o", x, y3, "c*")

在特定的数据点显示标记
通过指定标记符号并将 markevery 属性设置为名称-值对组,创建一个线图并每隔四个数据点显示一个标记。
using TyPlot
x = LinRange(0, 10, 100);
y = sin.(x);
plot(x, y, "-o"; markevery=1:5:length(y))

指定线宽、标记大小和标记颜色
创建线图并使用 fmt 选项指定带正方形标记的绿色虚线。使用 Key=Value 对组来指定线宽、标记大小和标记颜色。将标记边颜色设置为蓝色,并使用 RGB 颜色值设置标记面颜色。
using TyPlot
x = (-pi):(pi / 10):pi;
y = tan.(sin.(x)) - sin.(tan.(x));
figure()
plot(
x,
y,
"--gs";
linewidth=2,
markersize=10,
markeredgecolor="b",
markerfacecolor=[0.5, 0.5, 0.5],
)

添加标题和轴标签
使用 LinRange 函数将 x 定义为 0 到 10 之间 150 个值组成的向量。将 y 定义为 x 的余弦值。
using TyPlot
x = LinRange(0, 10, 150);
y = cos.(5 * x);
figure()
plot(x, y; color=[0, 0.7, 0.9])
title("2-D Line Plot")
xlabel("x")
ylabel("cos(5x)")

绘制持续时间并指定刻度格式
绘制持续时间并指定刻度格式。
using TyPlot
import Dates: Second, unix2datetime
t = range(Second(0), Second(180); step=Second(30))
t = [t...]
unix_t = unix2datetime(0)
dt = unix_t .+ t
y = [0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785]
y = [y...]
plot(dt, y);

指定线图的坐标区
调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象,并将该对象返回为 ax1。通过将 ax1 传递给 plot 函数来创建顶部绘图。通过将坐标区传递给 title 和 ylabel 函数,为图添加标题和 y 轴标签。重复该过程以创建底部绘图。
using TyPlot
x = LinRange(0, 3, 100);
y1 = sin.(5 * x);
y2 = sin.(15 * x);
ax1 = subplot(2, 1, 1)
ax2 = subplot(2, 1, 2)
# Top plot
plot(ax1, x, y1)
title(ax1, "Top Plot")
ylabel(ax1, "sin(5x)")
# Bottom plot
plot(ax2, x, y2)
title(ax2, "Bottom Plot")
ylabel(ax2, "sin(15x)")

创建并修改线条
将 x 定义为 100 个介于 −2π 和 2π 之间的线性间隔值。将 y1 和 y2 定义为 x 的正弦和余弦值。为上述两个数据集分别创建线图,并在 p 中返回两个图形线条。
using TyPlot
x = LinRange(-2 * pi, 2 * pi, 100);
y1 = sin.(x);
y2 = cos.(x);
p = plot(x, y1, x, y2);
将第一个线条的线宽更改为 2。向第二行添加星形标记。使用圆点表示法设置属性。
p[1].set_linewidth(2)
p[2].set_marker("*")
plt_update()

绘制圆形
绘制以点 (4,3) 为中心以 2 为半径的圆。使用 axis("equal") 可沿每个坐标方向使用相等的数据单位。
using TyPlot
r = 2;
xc = 4;
yc = 3;
theta = LinRange(0, 2 * pi, 100);
x = r * cos.(theta) .+ xc;
y = r * sin.(theta) .+ yc;
plot(x, y)
axis("equal")

# 输入参数
Y - y 值标量 | 向量 | 矩阵
y值,指定为标量、向量或矩阵。要根据特定的 x 值绘图,还必须指定 X。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
X - x 值标量 | 向量 | 矩阵
x值,指定为标量、向量或矩阵。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
fmt - 线型、颜色和标记
线型、颜色和标记,指定为包含符号的字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、颜色和标记)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: "--ro" 是带有圆形标记的红色虚线
| 线型 | 说明 | 表示的线条 |
|---|---|---|
| "-" | 实线 | ![]() |
| "--" | 虚线 | ![]() |
| ":" | 点线 | ![]() |
| "-." | 点划线 | ![]() |
| "none" | 无线条 | 无线条 |
| 标记 | 符号 | 说明 |
|---|---|---|
| "." | ![]() | point |
| "," | pixel | |
| "o" | ![]() | circle |
| "v" | ![]() | triangle_down |
| "^" | ![]() | triangle_up |
| "<" | ![]() | triangle_left |
| ">" | ![]() | triangle_right |
| "1" | ![]() | tri_down |
| "2" | ![]() | tri_up |
| "3" | ![]() | tri_left |
| "4" | ![]() | tri_right |
| "8" | ![]() | octagon |
| "s" | ![]() | square |
| "p" | ![]() | pentagon |
| "P" | ![]() | plus (filled) |
| "*" | ![]() | star |
| "h" | ![]() | hexagon1 |
| "H" | ![]() | hexagon2 |
| "+" | ![]() | plus |
| "x" | ![]() | x |
| "X" | ![]() | x (filled) |
| "D" | ![]() | diamond |
| "d" | ![]() | thin_diamond |
| "|" | ![]() | vline |
| "_" | ![]() | hline |
| "none" | 无标记 | none |
ax - 目标坐标区Axes 对象 | PolarAxes 对象
目标坐标区,指定为 Axes 对象、PolarAxes 对象。如果不指定坐标区或当前坐标区是笛卡尔坐标区,plot 函数将使用当前坐标区。要在极坐标区上绘图,请指定 PolarAxes 对象作为第一个输入参数,或者使用 polarplot 函数。
# 名称-值对组参数
指定可选的、以逗号分隔的 Key=Value 对组参数。Key 为参数名称,Value 为对应的值。您可采用任意顺序指定多个名称-值对组参数,如 Key1=Value1,...,KeyN=ValueN 所示。
示例: plot([1, 2, 3]; marker="o", markeredgecolor="r")
此处列出的图形线条属性只是一个子集。有关完整列表,请参见 line 属性。
label - 图例nothing(默认) | 字符串 | 数值
label 图例,默认 nothing,使用默认数据 data1 标记图形对象。如果设置了图例则以图例内容标记图形对象。
alpha - 透明度1 (默认) | 范围 [0,1] 中的标量
透明度,指定为下列值之一:
范围 [0,1] 中的标量 - 在所有图形对象上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。介于 0 和 1 之间的值表示半透明。
示例: plot([1, 2, 3]; alpha=0.2)
color - 线条颜色[0, 0.4470, 0.7410] (默认) | RGB 三元组 | 十六进制颜色代码 | "r" | "g" | "b" | ...
线条颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
- RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4, 0.6, 0.7];
- 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。 这些值不区分大小写。因此,颜色代码 "#FF8800" 与 "#ff8800"、"#F80" 与 "#f80" 是等效的。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
| "red" | "r" | [1, 0, 0] | "#FF0000" | ![]() |
| "green" | 不适用 | [0, 0.5019607843137255, 0] | "#008000" | ![]() |
| 不适用 | "g" | [0, 0.5, 0] | "#007F00" | ![]() |
| 不适用 | 不适用 | [0, 1, 0] | "#00FF00" | ![]() |
| "blue" | "b" | [0, 0, 1] | "#0000FF" | ![]() |
| "cyan" | 不适用 | [0, 1, 1] | "#00FFFF" | ![]() |
| 不适用 | "c" | [0, 0.75, 0.75] | "#00BFBF" | ![]() |
| "magenta" | 不适用 | [1, 0, 1] | "#FF00FF" | ![]() |
| 不适用 | "m" | [0.75, 0, 0.75] | "#BF00BF" | ![]() |
| "yellow" | 不适用 | [1, 1, 0] | "#FFFF00" | ![]() |
| 不适用 | "y" | [0.75, 0.75, 0] | "#BFBF00" | ![]() |
| "black" | "k" | [0, 0, 0] | "#000000" | ![]() |
| "white" | "w" | [1, 1, 1] | "#FFFFFF" | ![]() |
| "none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 Syslab 在许多类型的绘图中使用的默认颜色的 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" | ![]() |
示例: plot([1, 2, 3]; color="blue")
示例: plot([1, 2, 3]; color=[0, 1, 0])
示例: plot([1, 2, 3]; color="#0000FF")
linestyle - 线型"-" (默认) | "--" | ":" | "-." | "none"
线型,指定为下表中列出的选项之一。
| 线型 | 说明 | 表示的线条 |
|---|---|---|
| "-" | 实线 | ![]() |
| "--" | 虚线 | ![]() |
| ":" | 点线 | ![]() |
| "-." | 点划线 | ![]() |
| "none" | 无线条 | 无线条 |
linewidth - 线宽1.5 (默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
marker - 标记符号"none" (默认) | "o" | "+" | "*" | "." | "x" | ...
标记符号,指定为下表中的标记之一。默认情况下,图形线条没有标记。通过指定标记符号沿该线条上的每个数据点添加标记。
| marker | symbol | description |
|---|---|---|
| "." | ![]() | point |
| "," | pixel | |
| "o" | ![]() | circle |
| "v" | ![]() | triangle_down |
| "^" | ![]() | triangle_up |
| "<" | ![]() | triangle_left |
| ">" | ![]() | triangle_right |
| "1" | ![]() | tri_down |
| "2" | ![]() | tri_up |
| "3" | ![]() | tri_left |
| "4" | ![]() | tri_right |
| "8" | ![]() | octagon |
| "s" | ![]() | square |
| "p" | ![]() | pentagon |
| "P" | ![]() | plus (filled) |
| "*" | ![]() | star |
| "h" | ![]() | hexagon1 |
| "H" | ![]() | hexagon2 |
| "+" | ![]() | plus |
| "x" | ![]() | x |
| "X" | ![]() | x (filled) |
| "D" | ![]() | diamond |
| "d" | ![]() | thin_diamond |
| "|" | ![]() | vline |
| "_" | ![]() | hline |
| "none" | 无标记 | none |
markevery - 要显示标记的数据点的索引nothing(默认) | 正整数向量 | 正整数标量
要显示标记的数据点的索引,指定为正整数向量。
- markevery = nothing,每个点都绘制标记;
- markevery = N,从标记 0 开始,每 N 个点绘制一个标记;
- markevery = (start,N),从开始点开始(包括开始点),每 N 个点绘制一个标记;
- markevery = start:N:end,从开始点开始(包括开始点),到结束点结束(不包括结束点),每 N 个点绘制一个标记;
- markevery = [i, j, m, n],只绘制 i、j、m 和 n 处的标记;
- markevery = [true, false, true],只绘制为 true 的位置的标记,标记数要与 true 和 false 的总数等价。
注意
要查看标记,还必须指定标记符号。
示例: plot(x, y, "-o"; markevery=[1, 5, 10]) 在第一、第五和第十个数据点处显示圆形标记。
示例: plot(x, y, "-x"; markevery=1:3:length(y)) 每三个数据点显示一个交叉标记。
示例: plot(x, y; marker="s", markevery=5) 每五个数据点显示一个正方形标记。
markeredgecolor - 标记轮廓颜色"auto" (默认) | RGB 三元组 | 十六进制颜色代码 | "r" | "g" | "b" |
标记轮廓颜色,指定为 "auto"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。 默认值 "auto" 使用与 Color 属性相同的颜色。
对于自定义颜色,请指定 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" | 不适用 | [0, 0.5019607843137255, 0] | "#008000" | ![]() |
| 不适用 | "g" | [0, 0.5, 0] | "#007F00" | ![]() |
| 不适用 | 不适用 | [0, 1, 0] | "#00FF00" | ![]() |
| "blue" | "b" | [0, 0, 1] | "#0000FF" | ![]() |
| "cyan" | 不适用 | [0, 1, 1] | "#00FFFF" | ![]() |
| 不适用 | "c" | [0, 0.75, 0.75] | "#00BFBF" | ![]() |
| "magenta" | 不适用 | [1, 0, 1] | "#FF00FF" | ![]() |
| 不适用 | "m" | [0.75, 0, 0.75] | "#BF00BF" | ![]() |
| "yellow" | 不适用 | [1, 1, 0] | "#FFFF00" | ![]() |
| 不适用 | "y" | [0.75, 0.75, 0] | "#BFBF00" | ![]() |
| "black" | "k" | [0, 0, 0] | "#000000" | ![]() |
| "white" | "w" | [1, 1, 1] | "#FFFFFF" | ![]() |
| "none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 Syslab 在许多类型的绘图中使用的默认颜色的 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" (默认) | RGB 三元组 | 十六进制颜色代码 | "r" | "g" | "b" |
标记填充颜色,指定为 "auto"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 "none" 表示没有填充颜色。
对于自定义颜色,请指定 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" | 不适用 | [0, 0.5019607843137255, 0] | "#008000" | ![]() |
| 不适用 | "g" | [0, 0.5, 0] | "#007F00" | ![]() |
| 不适用 | 不适用 | [0, 1, 0] | "#00FF00" | ![]() |
| "blue" | "b" | [0, 0, 1] | "#0000FF" | ![]() |
| "cyan" | 不适用 | [0, 1, 1] | "#00FFFF" | ![]() |
| 不适用 | "c" | [0, 0.75, 0.75] | "#00BFBF" | ![]() |
| "magenta" | 不适用 | [1, 0, 1] | "#FF00FF" | ![]() |
| 不适用 | "m" | [0.75, 0, 0.75] | "#BF00BF" | ![]() |
| "yellow" | 不适用 | [1, 1, 0] | "#FFFF00" | ![]() |
| 不适用 | "y" | [0.75, 0.75, 0] | "#BFBF00" | ![]() |
| "black" | "k" | [0, 0, 0] | "#000000" | ![]() |
| "white" | "w" | [1, 1, 1] | "#FFFFFF" | ![]() |
| "none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 Syslab 在许多类型的绘图中使用的默认颜色的 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" | ![]() |
markersize - 标记大小6 (默认) | 正值
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
# 输出参数
h - 一个或多个图形线条对象标量 | 向量
# 另请参阅
# 函数
gca | hold | legend | loglog | plot3 | title | xlabel | xlim | ylabel | ylim

















.png)





.png)






















