MathTop

plot 函数

绘制直角坐标曲线,支持相容量纲的物理量及坐标轴单位换算。

语法

  • plot(expr, x = a..b)
  • plot([expr1, expr2], x = a..b)
  • plot(expr, x = a..b, option = value, ...)
  • plot(expr, x = a*Unit(u)..b*Unit(u), useunits = [ux, uy])

参数与选项

expr要变换或求值的表达式。
range自变量及采样区间 x=a..b。物理量端点须使用相容单位,如 t=0*Unit(s)..2*Unit(s);只有零可以省略单位。物理量区间必须有限、递增且可在浮点采样精度内表示。expr 中的自变量自动带上对应单位,其余参数须先赋值。
title图形上方显示的标题文本。
labels坐标轴或类别标签。2D 图通常为 [xLabel, yLabel];图表中在支持时用于标注分类。
legend单个数据系列的图例文本,或多个系列名称列表。
color / colour颜色名、CSS 颜色,或用于多个系列/图元的颜色列表。
style绘制风格:line 绘制连续线段,point 绘制采样点标记。
linestyle线型,例如 solid、dash、dot 或 dashdot。
thickness曲线、网格曲面和图元的线宽。
symbol点样式图中使用的点标记模式。
symbolsize采样点或显式点图元的标记半径。
axes坐标轴显示控制;使用 none/false 隐藏坐标轴。
gridlines网格线显示控制;true 显示,false 隐藏。
background图形背景颜色。
transparency透明度控制,范围 0 到 1,数值越大越透明。
view可见数值区间 [xmin..xmax, ymin..ymax],或仅指定纵轴的 ymin..ymax;default 保留自动范围。物理量绘图的边界必须有限、递增、不带 Unit(...),并按 useunits 选定的显示单位计量。此选项只裁剪视图,不重新采样或改变曲线数值。
numpoints / samples表达式绘图中使用的采样点数或网格采样数。
useunits可选布尔值或含两个单位的列表。省略时由物理量表达式和端点推导单位。true 或单独的 useunits 启用单位计算;false 接受无单位输入,但不能丢弃物理单位。[横轴单位,纵轴单位] 在采样前将物理坐标换算为相容的目标单位。可使用单位名称、带引号名称、Unit(...) 或复合单位;default 保留该轴推导出的单位。对于无单位坐标,显式单位仅作标注,数值不变并显示说明。labels 覆盖显示文字而不改变换算。最多 32 条物理曲线须具有相容的纵轴量纲。暂不支持带单位的过程、参数曲线和三维绘图。

示例

  1. 基础曲线plot(sin(x), x = 0..6*pi)返回一条覆盖三个完整周期的平滑正弦曲线。
  2. 标题plot(sin(x), x = 0..2*pi, title = 'Sine curve')绘图上方显示标题 Sine curve。
  3. 坐标轴标签plot(sin(x), x = 0..2*pi, labels = ['angle', 'value'])横轴标为 angle,纵轴标为 value。
  4. 图例plot([sin(x), cos(x)], x = 0..2*pi, legend = ['sin', 'cos'])同时绘制两条曲线,图例分别标注为 sin 和 cos。
  5. 颜色列表plot([sin(x), cos(x)], x = 0..2*pi, color = [red, blue])第一条曲线为红色,第二条曲线为蓝色。
  6. colour 别名plot(cos(x), x = 0..2*pi, colour = green)接受 colour 写法,并将曲线绘制为绿色。
  7. 点样式plot(sin(x), x = 0..2*pi, style = point, symbol = circle, symbolsize = 5, numpoints = 80)采样值以圆点显示,而不是连成曲线。
  8. 虚线plot(sin(x), x = 0..2*pi, linestyle = dash)正弦曲线使用虚线线型。
  9. 加粗曲线plot(sin(x), x = 0..2*pi, thickness = 5)曲线以更粗的线宽显示。
  10. 隐藏坐标轴plot(sin(x), x = 0..2*pi, axes = none)保留曲线和刻度标签,但隐藏坐标轴线。
  11. 隐藏网格plot(sin(x), x = 0..2*pi, gridlines = false)背景网格线被隐藏。
  12. 背景色plot(sin(x), x = 0..2*pi, background = '#f8fafc')绘图区使用指定的浅色背景。
  13. 透明度plot(sin(x), x = 0..2*pi, transparency = 0.35)曲线以半透明效果显示。
  14. 显示范围plot(sin(x), x = 0..4*pi, view = [0..6.28, -1..1])只显示指定的 x 和 y 可见窗口。
  15. 采样数plot(sin(10*x), x = 0..2*pi, numpoints = 600)更高的采样点数使高频曲线更平滑。
  16. 综合样式plot([sin(x), cos(x)], x = 0..2*pi, title = 'Trig', labels = ['x', 'y'], legend = ['sin', 'cos'], color = [red, blue], linestyle = dash, thickness = 3, view = [0..6.28, -1..1], numpoints = 240)返回一个带标题的双曲线图,同时应用坐标轴标签、图例、自定义颜色、虚线、加粗线条、固定视图和采样数控制。
  17. 带单位的纵轴plot(x^2*Unit(m), x=0..2)纵轴以米计量,末端采样值为 4 米。
  18. 物理区间与面积量纲plot(x^2, x=0*Unit(cm)..2*Unit(m), useunits=[m,cm^2])横轴范围为 0 到 2 米,纵轴末端为 40000 平方厘米。
  19. 保留推导出的坐标单位plot(x*Unit(m), x=0..2, useunits=[default,Unit(cm)])无单位横轴保持不变;纵轴换算为厘米,末端数值为 200。
  20. 保存速度并按物理时间绘图speed:=3*Unit(m/s); plot(speed*t, t=0..2*Unit(s), useunits=[ms,cm])匀速运动的横轴范围为 0 到 2000 毫秒,纵轴范围为 0 到 600 厘米。
  21. 相容曲线使用同一量尺plot([x*Unit(m),x*Unit(cm)], x=0..2, useunits=[default,cm], legend=['metres','centimetres'])x=2 时两条曲线分别为 200 厘米和 2 厘米,不会将两种单位误当作同一尺度。
  22. 角度单位plot(sin(x), x=0*Unit(deg)..180*Unit(deg), useunits=[rad,default])横轴以弧度计量,从 0 到 pi,得到半个正弦周期。
  23. 常量物理量plot(3*Unit(m), x=0..2, useunits)位于 3 米处的水平线,纵向显示区间保留非零高度。
  24. 布尔单位控制plot(x*Unit(m), x=0..2, useunits=true)由表达式推导出以米计量的物理纵轴。
  25. 无单位输入plot(x^2, x=0..2, useunits=false)普通无单位抛物线。若输入为物理量,false 会报错,而非去掉单位。
  26. 仅标注单位,不换算数值plot(x^2, x=0..2, useunits=[ms,cm])坐标末端仍为 (2,4)。单位仅作标注,不表示已进行量纲校验。
  27. 单位换算、视区与样式综合应用plot(x^2, x=0*Unit(m)..2*Unit(m), useunits=[cm,cm^2], labels=['length [cm]','area [cm²]'], title='Area', color=blue, thickness=3, view=[0..150,0..22500], numpoints=240)采样末端为 (200,40000),可见窗口按厘米和平方厘米限制为 0..150 与 0..22500。自定义标签不改变换算后的坐标。