waveform-analysis 0.1.78 → 0.1.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -492,19 +492,22 @@ const amplitudeLimits: WaveformAmplitudeLimits = {
492
492
 
493
493
  ### Y 轴自动等分
494
494
 
495
- Y 轴默认显示 5 个主刻度(包含上下端点),并使用类似 ECharts 的 `1 / 2 / 5 × 10ⁿ` 漂亮
496
- 步长,保证主刻度之间数值等间距。可以通过 `axes.y.splitNumber` 指定主刻度总数;每条
497
- Y 轴会独立计算:
495
+ Y 轴默认以 5 个主刻度为目标,并使用类似 ECharts 的 `1 / 2 / 5 × 10ⁿ` 漂亮
496
+ 步长,保证主刻度之间数值等间距。可以通过 `axes.y.splitNumber` 指定目标刻度数量;
497
+ 显式留白或限幅时仅保留范围内的主刻度,边界不必是刻度。每条 Y 轴会独立计算:
498
498
 
499
499
  ```vue
500
500
  <WaveformChart :data="chartData" :axes="{ y: { splitNumber: 5 } }" />
501
501
  ```
502
502
 
503
- 上下端点刻度标签不做额外偏移,文字垂直中心分别与图框上下边界对齐。
504
- 落在 Y 轴上下端点的刻度只显示数值,不显示刻度短线;中间刻度、网格和波形坐标保持不变。
503
+ Y 轴图框上边界的普通刻度标签隐藏;开启最大值刻度展示时,边界上的最大值标签仍显示。
504
+ 下边界标签仍垂直居中对齐图框底边。
505
+ 上下端点的普通刻度不显示短线;开启最大值刻度展示时,上边界的最大值短线仍显示。
506
+ 中间刻度、网格和波形坐标保持不变。
507
+ 科学计数法倍率与单位随最高的可见标签显示,图框内部的原始极值标记仍保留。
505
508
  尺寸或坐标范围变化后,每根 Y 轴仍保持该对齐方式,左右侧 Y 轴均适用。
506
509
 
507
- 默认会将 Y 轴范围扩展为便于读取的等距刻度。传入 `nice: false` 可保持数据自动范围或
510
+ 默认会将未显式配置留白的 Y 轴边界扩展为便于读取的等距刻度。传入 `nice: false` 可保持数据自动范围或
508
511
  `yDomain` / `yDomains` 的原始端点:
509
512
 
510
513
  ```vue
@@ -515,7 +518,7 @@ Y 轴会独立计算:
515
518
  例如 `0.1` 使用 `[min, max + (max - min) * 0.1]`,下限不变。
516
519
  单值轴按图框合并范围计算,多值轴按各轴对应曲线范围计算;固定范围及手动缩放的 Y
517
520
  视口不增加留白。常量数据先沿用非零范围回退,再计算留白。设置 `nice: false`
518
- 可避免刻度算法进一步扩展范围。
521
+ 可使用线性等分刻度;显式配置留白的边界在 nice 模式下也不会进一步扩展。
519
522
 
520
523
  ```vue
521
524
  <WaveformChart :data="chartData" :axes="{ y: { nice: false, upperPaddingRatio: 0.1 } }" />
@@ -686,6 +689,10 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
686
689
  `minVisiblePoints: 2` 可缩放到两个真实采样点,`maxZoomScale: null` 可显式关闭倍率上限。
687
690
  最少点数约束检查缩放后的范围;当前已有两个可见点时,滚轮、按钮和框选仍可继续收窄,
688
691
  直到达到真实最小范围。视口外用于延续折线的邻点不计入可见点数。
692
+ 共享 X 轴的多图框只需至少一个图框满足最少点数约束:稀疏图框可剩一个点或为空,
693
+ 仍保留图框、坐标轴及布局;其他图框有余量时继续同步放大,直到没有图框能支持更小窗口。
694
+ 点数按每个图框内不同 X 坐标的并集计算,不跨图框合并;独立图框分别约束。
695
+ 空图框及不足最少点数的图框不阻止其他图框缩放,显式最小跨度和最大倍率仍然生效。
689
696
 
690
697
  设置 `:integer-zoom="true"` 可开启整数缩放,默认关闭。开启后滚轮、框选和
691
698
  `setViewportDomain` 优先将开始时间向下取整、结束时间向上取整;`timeUnit='ms'` 时对齐整毫秒,
@@ -693,6 +700,8 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
693
700
  则保留小数范围及小数标签、刻度,例如秒模式下 `1.2~1.8` 和 `1~1.4` 保留小数,
694
701
  跨整数的 `1.8~2.2` 也保留原范围;负数采用相同规则。初始范围和重置范围也遵循此规则。
695
702
  整数模式不额外限制最小跨度,配置的最小跨度、最大倍率和最少可见点数限制仍然生效。
703
+ 滚轮或放大按钮若因向外取整而无法继续缩小,会改用满足相同约束的小数范围;例如
704
+ `1988~1991 ms` 可继续放大为 `1988.75~1990.25 ms`,不会因整数对齐提前禁用。
696
705
  平移时保持当前跨度;小数视窗跨越整数边界时仍保留小数。记录边界和最小跨度约束优先。
697
706
  动态切换此开关会重置视口;切换时间单位只更新显示,不改变当前原始范围。demo 默认开启此开关。
698
707
  原始采样坐标不会被修改,缩放事件仍以秒返回实际对齐后的范围;自定义 formatter 不影响对齐粒度。
@@ -795,7 +804,8 @@ Tooltip 每个系列按 `炮号:通道 (x:值 y:值)` 格式显示。`Wavefor
795
804
  下沿为 44px(更大的有效边距仍保留)。中间行刻度带不变,尾部空行无 X 轴时不补偿。
796
805
  净图模式不应用刻度带补偿,保留现有刻度与网格布局。
797
806
  最高和最低 Y 刻度(含科学指数和单位)与普通刻度保持相同的垂直居中方式,文字中心
798
- 对齐刻度位置;上下端点文字中心分别对齐图框上下边界,不额外向图框内偏移。
807
+ 对齐刻度位置;上边界普通标签隐藏,开启的最大值标签保留;下边界文字中心对齐图框底边,
808
+ 不额外向图框内偏移。
799
809
  建议设置 `plotMargin.top` 至少为 10px,避免顶部文字被 SVG 裁剪;
800
810
  `top=0` 仍按传入值布局,但顶部标签可能显示不完整。
801
811
  紧凑模式的图框边框路径向内缩半个实际 `frameStyle.borderWidth`,四边使用同一描边
@@ -925,11 +935,11 @@ const series = {
925
935
  `separated` 或 `compact` 控制图框布局和 X 轴共享方式;未共享 `trackId` 的单曲线
926
936
  图框不会因为切换叠加方式而改变。
927
937
 
928
- `compact` 多道紧密模式仅在最高刻度标签与最低刻度标签重叠时隐藏最高标签,
929
- 优先保留最低标签;第一行以及其他没有冲突的最高标签正常显示。刻度线、网格、
938
+ 所有布局模式均隐藏图框上边界的普通 Y 轴标签;开启最大值刻度展示时保留最大值标签及短线。`compact` 多道紧密模式还会在最高可见
939
+ 刻度标签与最低刻度标签重叠时隐藏最高标签,优先保留最低标签。刻度线、网格、
930
940
  数据范围和文字对齐位置不变,科学计数法倍率与单位随最高的可见标签显示。
931
941
  上方留白区域内的原始最大值标记仍保留,并继续按标签碰撞规则处理。
932
- 其他布局模式不应用这项边界标签避碰规则。
942
+ 其他布局模式不应用额外的标签避碰规则。
933
943
 
934
944
  ### 绘图区域尺寸
935
945
 
@@ -1636,7 +1646,7 @@ async function exportSvg(chart: WaveformChartHandle): Promise<Blob | undefined>
1636
1646
  const axes: WaveformAxesOptions = {
1637
1647
  y: {
1638
1648
  lineVisible: false,
1639
- nice: false,
1649
+ nice: true,
1640
1650
  upperPaddingEnabled: true,
1641
1651
  lowerPaddingEnabled: true,
1642
1652
  upperPaddingRatio: 0.1,
@@ -1651,7 +1661,13 @@ const axes: WaveformAxesOptions = {
1651
1661
  全部省略则不增加留白;零、负数或非有限比例不生效。关闭开关不清除配置比例。
1652
1662
 
1653
1663
  固定 `yDomain` / `yDomains` 和手动 Y 视口不添加比例留白;重置或适应数据后恢复自动规则。
1654
- nice 在添加留白后执行,可能进一步扩域,关闭留白不等于关闭 nice。
1664
+ 显式配置某侧开关或比例后,该侧边界严格按留白结果确定,nice 不再扩展该侧。
1665
+ 比例为 `0` 或开关为 `false` 时,该侧贴近数据极值;负数或非有限比例按零留白处理。
1666
+ 未配置侧仍沿用 nice 扩域,全部未配置时行为保持兼容。主刻度继续使用
1667
+ `1 / 2 / 5 × 10ⁿ` 漂亮步长,仅显示最终范围内的刻度;边界不必是主刻度,实际数量可能减少。
1668
+ 例如 `[-73, 86]` 上下各 10% 的图框范围严格为 `[-88.9, 101.9]`。
1669
+ 这改变了旧版显式留白后仍会被 nice 进一步扩域的行为。限幅配置侧优先于比例留白,
1670
+ 未限幅侧仍应用上述规则;手动视口不重复添加留白,显式留白模式下保留手动视口边界。
1655
1671
  常量沿用非零范围回退后计算跨度;误差棒开启时包含其端点;单轴合并范围,多轴分别计算。
1656
1672
 
1657
1673
  `axes.y.maximumTickVisible` 和 `axes.y.minimumTickVisible` 分别控制原始最大值、最小值的