name: desmos-graphing description: 在 Obsidian 中使用 desmos-graph 代码块创建交互式 Desmos 图表。用于可视化函数、参数曲线、不等式或具有可自定义样式和设置的数学关系。
Obsidian 中的 Desmos 绘图
⚠️ 关键:双解析器系统
该插件在不同部分使用不同的解析器:
| 位置 | 解析器 | pi | sqrt | 示例 |
|---|---|---|---|---|
| 设置 | mathjs | pi |
- | left=-2*pi+0.5 |
| 方程 | Desmos (LaTeX) | \pi |
\sqrt{x} |
y=\sqrt{x}+\pi |
| 点 | Desmos (LaTeX) | \pi |
\sqrt{x} |
(\pi/2, 1) |
| 限制条件 | 纯数学 | 数值 | x^0.5 |
x>-1.5708 |
✅ 正确
left=-0.5; right=2*pi+0.5
---
y=\sqrt{x}|blue
y=x/\sqrt{3}|green|0<=x<=3^0.5
(\pi/2, 0)|label:cos(90°)=0
❌ 错误(将导致错误)
left=-2*\pi # 错误:"Syntax error in part '\pi'"
y=\sin(x+pi/4) # 错误:"Too many variables" (p*i)
(pi/2, 0) # 错误:"Too many variables" ← 点坐标需要 LaTeX!
y=x/sqrt(3)|0<=x<=sqrt(3) # 错误:"Too many variables" (s*q*r*t)
关键规则:在方程中使用 \sqrt{x},在限制条件中使用 x^0.5!
代码块格式
```desmos-graph
[设置]
---
[方程]
```
- 设置(可选)在
---上方,方程在下方 - 每个方程单独一行
- 使用
|为方程添加样式/限制条件
快速开始
基本函数
```desmos-graph
y=x^2
y=\sin(x)|blue
```
带设置
```desmos-graph
left=-2*pi; right=2*pi
bottom=-2; top=2
---
y=\sin(x)|red
y=\cos(x)|blue|dashed
```
点和标签
```desmos-graph
(0, 0)|label:原点
(3, 4)|red|label:点 A
(\pi/2, 1)|blue|label:π/2 # 在坐标中使用 \pi!
y=x|dashed
```
⚠️ 点使用 LaTeX:(\pi/2, 0) 而不是 (pi/2, 0)
基本设置
| 设置 | 默认值 | 描述 |
|---|---|---|
width |
600 | 图表宽度(像素) |
height |
400 | 图表高度(像素) |
left |
-10 | 左边界 |
right |
10 | 右边界 |
bottom |
-7 | 下边界 |
top |
7 | 上边界 |
grid |
true | 显示网格线 |
degreeMode |
radians | radians 或 degrees |
附加设置
| 设置 | 默认值 | 描述 |
|---|---|---|
hideAxisNumbers |
false | 隐藏坐标轴数字标签 |
xAxisLabel |
- | 自定义 x 轴标签 |
yAxisLabel |
- | 自定义 y 轴标签 |
xAxisLogarithmic |
false | 对数 x 轴刻度 |
yAxisLogarithmic |
false | 对数 y 轴刻度 |
defaultColor |
- | 所有方程的默认颜色 |
设置使用 = 赋值,用 ; 或换行分隔。
边界接受数学表达式:left=-2*pi
方程样式
在方程后使用 |(管道符)添加样式:
方程|颜色|样式|限制条件|标签
段顺序是灵活的——解析器会自动检测每个段的类型。
⚠️ 关键:| 是保留的分隔符!
管道字符不能出现在方程或标签中:
(1, 0)|label:|v|=5 # ❌ 错误:标签被解析为空
(1, 0)|label:∥v∥=5 # ✅ 使用 Unicode ∥ (U+2225)
y=|x| # ❌ 错误:管道符分割了方程
y=abs(x) # ✅ 使用 abs() 函数
颜色
支持的颜色名称:red, green, blue, yellow, orange, purple, cyan, magenta, black, white
十六进制代码:#rrggbb 或 #rgb(例如 #ff6600, #f60)
⚠️ 不支持 gray/grey! 请使用十六进制代码:
- 浅灰:
#c0c0c0 - 中灰:
#808080 - 深灰:
#404040
y=x|gray # ❌ 错误:被解析为限制条件
y=x|#808080 # ✅ 正确
线和点样式
| 线 | 点 | 效果 |
|---|---|---|
solid |
point |
默认(实线/实心点) |
dashed |
open |
虚线/空心圆 |
dotted |
cross |
点线/X 标记 |
标签
(1, 2)|label 显示 “(1, 2)”,(1, 2)|label:点 A 显示自定义文本
限制条件
限制方程的绘制范围:
y=x^2|0<x<5 # 仅在 0 < x < 5 时绘制
y=\sin(x)|x>0|y>0 # 多个限制条件
y=2x|0<=x<=1 # 支持 <= 和 >=
y=\tan(x)|x>-1.5708|x<1.5708 # 使用数值(π/2≈1.5708)
⚠️ 关键:在限制条件中使用纯数学,不要用 LaTeX!
| ✅ 正确 | ❌ 错误 | 原因 |
|---|---|---|
x/2<y |
\frac{x}{2}<y |
没有 LaTeX 命令 |
x^0.5<2 |
\sqrt{x}<2 |
使用 ^0.5 而不是 \sqrt |
0<x<3^0.5 |
0<x<sqrt(3) |
sqrt() → sqr*t |
x>-1.5708 |
x>-pi/2 |
pi → p*i,使用数值 |
0<x<1 |
\{0<x<1\} |
不需要花括号 |
插件会自动用 {} 包裹限制条件——不要自己添加。
隐藏和特殊标签
f(x)=x^2|hidden # 定义但不显示
y=f(x)+1 # 使用隐藏函数
y=\sin(x)|noline # 仅显示点,不连接线
组合样式
顺序无关紧要:
y=x^2|red|dashed|0<x<5
(1, 2)|open|blue|label:起点
方程类型
| 类型 | 示例 |
|---|---|
| 显式 | y=x^2 |
| 隐式 | x^2+y^2=25 |
| 参数方程 | (\cos(t), \sin(t)) |
| 极坐标 | r=1+\cos(\theta) |
| 分段函数 | y=\{x<0: -x, x\} |
| 点 | (3, 4) |
| 函数定义 | f(x)=x^2 |
⚠️ 极坐标方程必须关于 r 是线性的
Desmos 仅支持 r 线性出现的极坐标方程:
r=1+\cos(\theta) # ✅ r 是线性的
r^2=\cos(2\theta) # ❌ 错误:"must be linear in r"
解决方案:转换为参数曲线:
# 双纽线 (r² = cos(2θ)) → 参数形式
(\cos(t)\sqrt{\cos(2t)}, \sin(t)\sqrt{\cos(2t)})|blue
参数曲线警告
⚠️ 展开括号表达式以避免解析错误:
(2t, 4t(1-t))|blue # ⚠️ 可能被误解为分段函数
(2t, 4t-4t^2)|blue # ✅ 展开形式更安全
分段函数
⚠️ 用反斜杠转义花括号:
y={x<0: -x, x} # ❌ 错误
y=\{x<0: -x, x\} # ✅ 正确
完整示例
三角函数相移
```desmos-graph
left=-2*pi; right=2*pi
bottom=-2; top=2
---
y=\sin(x)|blue
y=\sin(x+\pi/4)|red
y=\sin(x+\pi/2)|green
y=\sin(x+\pi)|purple|dashed
```
带控制点的贝塞尔曲线
```desmos-graph
left=-0.5; right=2.5
bottom=-0.5; top=2.5
---
(2t, 4t-4t^2)|blue
(0, 0)|black|label:P0
(1, 2)|black|label:P1
(2, 0)|black|label:P2
y=2x|#808080|dashed|0<x<1
y=-2x+4|#808080|dashed|1<x<2
```
缓动函数
```desmos-graph
left=-0.2; right=1.2
bottom=-0.2; top=1.2
---
y=x|dashed|black
y=1-\cos(\pi*x/2)|blue|0<=x<=1
y=\sin(\pi*x/2)|red|0<=x<=1
```
带特殊点的余弦函数
```desmos-graph
left=-0.5; right=2*pi+0.5
bottom=-1.5; top=1.5
---
y=\cos(x)|blue
(0, 1)|red|label:cos(0)=1
(\pi/2, 0)|red|label:cos(π/2)=0
(\pi, -1)|red|label:cos(π)=-1
(3*\pi/2, 0)|red|label:cos(3π/2)=0
```
⚠️ 注意:设置中使用 2*pi,点中使用 \pi, 3*\pi/2 等。
高级
完整文档请参阅 reference.md:
- 所有 13 项设置及其默认值和自动调整规则
- 不支持颜色(灰色、粉色、棕色等)的十六进制代码
- 13 条错误信息及其原因和修复方法
- 常见问题的详细故障排除
- 极坐标到参数方程转换示例