# fimplicit
绘制隐函数
函数库: TySymbolicMath
# 语法
fimplicit(f)
fimplicit(f,interval)
fimplicit(ax,___)
fimplicit(___,Key=Value)
fp = fimplicit(___)
# 说明
fimplicit(f) 在默认区间 [-5 5] (对于 x 和 y)上绘制 f(x,y)=0 定义的隐函数。示例
fimplicit(f,interval) 为 x 和 y 指定绘图区间。示例
fimplicit(ax,___) 将在 ax 指定的坐标区中,而不是在当前坐标区中绘制图形。将坐标区指定为第一个输入参数,先于上述任何输入参数。
fimplicit(___,Key=Value) 使用一个或多个名称-值对组参数指定线条属性。例如,linewidth=2 指定 2 磅的线宽。示例
fp = fimplicit(___) 返回等高线图对象。使用 fp 查询和修改特定线条的属性。有关属性列表,请参阅等高线图属性。示例
# 示例
绘制隐式符号方程
在 x 和 y 的默认区间 [-5 5] 绘制由函数
using TySymbolicMath
@variables x y
fimplicit(x^2-y^2==1)

绘制隐式符号函数
在 x 和 y 的默认区间 [-5 5] 绘制函数
using TySymbolicMath
@variables x y f(x,y)
f = x^2-y^2-1
fimplicit(f)

指定绘图区间
在 x 的 [-4 0] 区间和 y 的 [-2 2] 区间绘制函数
using TySymbolicMath
@variables x y
circle = x^2+y^2==3
fimplicit(circle, [-4 0 -2 2])

绘制多个隐式方程
如果希望绘制多个方程,可以通过传入一个向量,或者使用 hold("on") 之后连续在一张图上画多次。如果指定 linestyle 或其他关键字参数,这会应用到所有图上。你不可以为每张图指定不同的关键字参数。
将一张图使用 subplot 分成两个子图。在第一张子图中使用向量输入的方式绘制
using TySymbolicMath
using TyPlot
@variables x y
circle1 = x^2+y^2==1
circle2 = x^2+y^2==3
subplot(2,1,1)
fimplicit([circle1,circle2],[-sqrt(3) sqrt(3) -sqrt(3) sqrt(3)])
title("Multiple Equations Using Vector Input")
subplot(2,1,2)
fimplicit(circle1,[-sqrt(3) sqrt(3) -sqrt(3) sqrt(3)])
hold("on")
fimplicit(circle2,[-sqrt(3) sqrt(3) -sqrt(3) sqrt(3)])
title("Multiple Equations Using hold on command")
hold("off")
tightlayout()

修改隐式绘图的外观
使用不同的半径值绘制两个以 (0,0) 为中心的圆。第一个圆使用红色点线。第二个圆使用线宽为 2 磅的绿色虚线。
using TySymbolicMath
using TyPlot
@variables x y
circle = x^2+y^2
fimplicit(circle==1; linestyle=":", color="r")
hold("on")
fimplicit(circle==2; linestyle="--", color="#00FF00", linewidth=2)
hold("off")
ax = gca()
ax.set_xlim(-sqrt(2), sqrt(2));
ax.set_ylim(-sqrt(2), sqrt(2));
plt_update()

创建后修改隐式绘图
绘制隐函数
using TySymbolicMath
using TyPlot
@variables x y
eqn = y*sin(x)+x*cos(y)==1
fp = fimplicit(eqn)
使用 fp 可在创建隐函数行对象后访问并修改其属性。例如,更改颜色、线型和线宽。
for c in fp.collections
c.set_edgecolor("r")
c.set_linestyle("--")
c.set_linewidth(2)
end
plt_update()

# 输入参数
f - 要绘制的隐函数或隐式方程符号表达式 | 符号方程
要绘制的隐函数或隐式方程,指定为符号表达式或符号方程。
interval - x 和 y 的绘图区间[-5 5] (默认) | 二元素向量 | 四元素向量
x 和 y 的绘图区间,指定为下列形式之一:
- [min max] 形式的二元素向量 - 对 x 和 y 使用相同的绘图区间 [min max];
- [xmin xmax ymin ymax] 形式的四元素向量 - 对 x 和 y 使用不同的绘图区间。在区间 [xmin xmax](对于 x)和 [ymin ymax](对于 y)上绘图。
示例: fimplicit(f,[-2 3 -5 0])
ax - 坐标区对象坐标区对象
坐标区对象。如果您不指定坐标区对象,则 fplot 使用当前坐标区 (gca)。
# 名称-值对组参数
指定可选的、以逗号分隔的 Key=Value 对组参数。Key 为参数名称,Value 为对应的值。您可采用任意顺序指定多个名称-值对组参数,如 Key1=Value1,...,KeyN=ValueN 所示。
示例: color ="r", linestyle = ":"
此处列出的图形线条属性只是一个子集。
Vars - 输入变量的顺序符号变量向量
输入变量的顺序,指定为符号变量向量,默认为 get_variables 的返回值。通过指定 Vars 可以指定符号函数的输入顺序。
示例: Vars = [y,x]
color - 线条颜色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" | ![]() |
示例: "blue"
示例: [0, 0, 1]
示例: "#0000FF"
linestyle - 线型"-" (默认) | "--" | ":" | "-." | "none"
线型,指定为下表中列出的选项之一。
| 线型 | 说明 | 表示的线条 |
|---|---|---|
| "-" | 实线 | ![]() |
| "--" | 虚线 | ![]() |
| ":" | 点线 | ![]() |
| "-." | 点划线 | ![]() |
| "none" | 无线条 | 无线条 |
linewidth - 线宽1.5 (默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
cmap - 颜色图指定颜色图
颜色图,指定为 "jet"、"cool"、"autumn"、"copper"等。
数据类型: String
alpha - 透明度1 (默认) | 范围 [0,1] 中的标量
透明度,指定为范围 [0,1] 中的标量 - 在所有图形对象上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。介于 0 和 1 之间的值表示半透明。
# 输出参数
fp - 一个或多个图形线条对象标量 | 向量
一个或多个图形线条对象,以标量或向量的形式返回。这些是唯一标识符,可以用来查询和修改特定图形线条的属性。






















