# function-plot 功能演示 这份笔记展示函数图像的写法、编辑刷新、坐标设置和错误反馈。在 NotesAgent 中打开后,切换到「写作」查看图像;「源码」模式可查看和修改下面的代码块。 ## 1. 从一条抛物线开始 `domain` 设置横轴范围,`range` 设置纵轴显示范围。`xlabel` 和 `ylabel` 设置坐标轴标签。 ```function-plot domain: -4, 4 range: -2, 18 xlabel: 横坐标 x ylabel: 函数值 y grid: true y = x^2 ``` 试着将 `y = x^2` 改为 `y = (x-1)^2 + 2`,观察顶点从 `(0, 0)` 移到 `(1, 2)`。修改后切回写作模式即可查看结果。 ## 2. 多函数同图 一个代码块内每行写一个函数,曲线按顺序分配颜色,并显示对应图例。三角函数的输入单位是弧度。 ```function-plot domain: -6.2832, 6.2832 range: -2.2, 2.2 xlabel: x / 弧度 ylabel: y y = sin(x) y = cos(x) y = 2sin(x) ``` 将第三条函数改为 `y = sin(2x)`,比较振幅变化和周期变化。 ## 3. 隐式乘法与交点 支持 `2x`、`2(x+1)`、`(x+1)(x-1)` 等写法。乘号也可以显式写成 `*`,幂可以使用 `^`。 ```function-plot domain: -3, 4 range: -5, 12 xlabel: x ylabel: y y = (x+1)(x-1) y = 2x + 1 ``` 两条曲线的交点满足 `x^2 - 1 = 2x + 1`,横坐标约为 `-0.732` 和 `2.732`。 ## 4. 指数、对数与参考直线 支持常量 `e`、`pi`,以及 `exp`、`ln`、`log10` 等函数。这里把横轴限定在正数范围,保证对数有定义。 ```function-plot domain: 0.1, 3 range: -3, 8 xlabel: x ylabel: y y = exp(x) y = ln(x) y = x ``` 超出纵轴显示范围的曲线会被裁切。把 `range` 改为 `-3, 22`,可以查看更完整的指数曲线。 ## 5. 绝对值与平方根 ```function-plot domain: -4, 4 range: -0.5, 4.5 xlabel: x ylabel: y y = abs(x) y = sqrt(abs(x)) ``` 这里用 `sqrt(abs(x))`,所以负半轴也有定义;它与 `sqrt(x)` 的定义域不同。 ## 6. 间断点与显示范围 ```function-plot domain: -5, 5 range: -5, 5 xlabel: x ylabel: y y = 1/x ``` `x = 0` 处无定义,图像应分成左右两支,而不是跨过间断点连线。可缩放或打开大图查看原点附近;曲线是有限采样的可视化,不代替数学定义。 ## 7. 关闭网格 ```function-plot domain: -6, 6 range: -0.2, 1.2 xlabel: x ylabel: y grid: false y = exp(-x^2/2) ``` 将 `grid: false` 改为 `grid: true`,比较有无网格的效果。 ## 8. 错误反馈演示(故意写错) 下面的 `sinn` 不是支持的函数名,预期显示错误诊断,不生成曲线。这是本节的演示内容。把它改为 `sin` 即可恢复图像;若希望导出一份没有错误警告的文档,请先修正这一行。 ```function-plot domain: -3.14, 3.14 y = sinn(x) ``` ## 交互与导出检查 - 将鼠标移到图表区域,试用缩小、放大、重置和大图查看;只读预览也可切换源码。 - 在窄窗口中横向滚动函数图,检查坐标刻度和右侧图例。 - 依次切换 `light`、`dark`、`sepia`、`paper-moments`、`ocean-blue`、`midnight-purple`;社区主题需先安装并启用。检查背景、网格、文字和曲线的对比度。 - 修改第一节函数后不保存,点击编辑器顶部「导出」,分别选择 HTML、PDF、DOCX,验证文件采用点击时的编辑内容。 - HTML 保留支持的主题配色;PDF、DOCX 使用浅色打印样式。HTML 的函数图为 SVG,PDF 为矢量图,DOCX 为静态图片。 ## 写法速查 | 项目 | 示例 | | --- | --- | | 代码块语言 | `function-plot` | | 函数表达式 | `y = x^2 + 2x + 1` | | 横轴范围 | `domain: -5, 5` | | 纵轴范围 | `range: -2, 10`,省略时自动估计 | | 坐标标签 | `xlabel: 时间`、`ylabel: 数值` | | 网格开关 | `grid: true` / `grid: false` | | 数学常量 | `pi`、`e` | | 常用函数 | `sin`、`cos`、`tan`、`sqrt`、`abs`、`exp`、`ln`、`log10` | | 注释 | 单独一行以 `#` 开头 | 范围端点使用数值,例如 `domain: -3.1416, 3.1416`;表达式中可以使用 `pi`。当前只绘制以 `x` 为自变量的二维函数,不支持任意脚本、参数曲线或三维曲面。 每个图块最多 16 条表达式;每份导出文档最多 16 个函数图、累计 8000 个表达式节点。本文件包含 7 个正常示例和 1 个有意保留的错误示例。