# 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] 绘制函数 描述的双曲线。首先使用 @variables 定义 f。

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 分成两个子图。在第一张子图中使用向量输入的方式绘制 ,在第二张子图中使用 hold("on") 的方式绘制同样的图。

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()
创建后修改隐式绘图

绘制隐函数 并将隐函数行对象赋给变量 fp。

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 - 一个或多个图形线条对象
标量 | 向量

一个或多个图形线条对象,以标量或向量的形式返回。这些是唯一标识符,可以用来查询和修改特定图形线条的属性。

# 另请参阅

fcontour | fmesh | fplot | fplot3 | fsurf