waveform-analysis 0.1.39 → 0.1.41
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 +42 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +464 -464
- package/dist/types/components/core/layout.d.ts +4 -3
- package/dist/types/components/core/trackLayoutBuilder.d.ts +1 -0
- package/dist/types/types/chart.d.ts +2 -0
- package/dist/types/utils/formatters.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/core/fixedYDomainLayout.test.ts +75 -5
- package/src/components/core/layout.test.ts +10 -2
- package/src/components/core/layout.ts +25 -9
- package/src/components/core/trackLayoutBuilder.ts +16 -6
- package/src/components/core/useWaveformLayout.ts +12 -1
- package/src/components/rendering/WaveformTrackAxes.vue +2 -1
- package/src/components/waveformChartCases/compactAndSharedHover.test.ts +2 -2
- package/src/components/waveformChartCases/dataLifecycle.test.ts +8 -2
- package/src/components/waveformChartCases/layoutAndDomains.test.ts +23 -3
- package/src/components/waveformChartCases/multiAxisAndPagination.test.ts +8 -1
- package/src/types/chart.ts +2 -0
- package/src/utils/formatters.test.ts +9 -0
- package/src/utils/formatters.ts +6 -3
package/README.md
CHANGED
|
@@ -115,7 +115,7 @@ const data = ref<WaveformData>({
|
|
|
115
115
|
| `yDomain` | `[number, number]` | 未设置 | 所有波形的固定 Y 轴范围 |
|
|
116
116
|
| `yDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置固定范围 |
|
|
117
117
|
| `grid` | `WaveformGridOptions` | `{ rowCount: 2, columnCount: 1, showPagination: true }` | 网格和分页 |
|
|
118
|
-
| `axes` | `WaveformAxesOptions` | 轴线均显示 | X/Y
|
|
118
|
+
| `axes` | `WaveformAxesOptions` | 轴线均显示 | X/Y 轴基线、Y 轴分割数与 X 轴 label 格式化 |
|
|
119
119
|
| `rendering` | `WaveformRenderingOptions` | `{}` | 降采样与点/误差棒间距 |
|
|
120
120
|
| `title` / `legend` / `frameStyle` | 对应公开类型 | 未设置 | 标题、图例和图框样式 |
|
|
121
121
|
| `frameNumber` | `string \| number` | 未设置 | 图框水印内容 |
|
|
@@ -208,7 +208,8 @@ import 'waveform-analysis/style.css'
|
|
|
208
208
|
|
|
209
209
|
范围优先级为 `trackId` 配置、`seriesId` 配置、全局 `yDomain`、数据自动范围。上下限必须
|
|
210
210
|
是两个有限且不相等的数字;倒序范围会自动调整为升序,无效配置会回退到下一优先级。
|
|
211
|
-
|
|
211
|
+
固定范围作为 Y 轴刻度算法的初始范围;轴会按漂亮步长经过 D3 的 `nice()` 扩展,确保主刻度
|
|
212
|
+
等间距。原始数据和传入的范围值不会被修改。
|
|
212
213
|
|
|
213
214
|
单值轴叠加模式会合并同一根轴上所有可见系列的有效范围;多值轴模式按系列分别使用配置,
|
|
214
215
|
超过四根轴后复用第 4 根轴的系列会取范围并集。隐藏系列不参与公共范围合并。
|
|
@@ -216,6 +217,16 @@ import 'waveform-analysis/style.css'
|
|
|
216
217
|
固定范围存在时,对应图框的 Y 轴不会被平移或视口重置覆盖;X 轴缩放、平移和重置保持原有
|
|
217
218
|
行为。运行时更新或移除 `yDomain` / `yDomains` 会立即重新布局,移除后恢复自动范围。
|
|
218
219
|
|
|
220
|
+
### Y 轴自动等分
|
|
221
|
+
|
|
222
|
+
Y 轴默认显示 5 个主刻度(包含上下端点),并使用类似 ECharts 的 `1 / 2 / 5 × 10ⁿ` 漂亮
|
|
223
|
+
步长,保证主刻度之间数值等间距。可以通过 `axes.y.splitNumber` 指定主刻度总数;每条
|
|
224
|
+
Y 轴会独立计算:
|
|
225
|
+
|
|
226
|
+
```vue
|
|
227
|
+
<WaveformChart :data="chartData" :axes="{ y: { splitNumber: 5 } }" />
|
|
228
|
+
```
|
|
229
|
+
|
|
219
230
|
### 缩放后按可视区间加载数据
|
|
220
231
|
|
|
221
232
|
组件支持 Plotly 风格的矩形框选缩放:在 zoom 模式下按住鼠标左键拖拽,松开后同时缩放
|
|
@@ -298,6 +309,34 @@ chartRef.value?.setViewportDomain(trackDomain, trackIndex)
|
|
|
298
309
|
Tooltip 每个系列按 `炮号:通道 (x:值 y:值)` 格式显示。`WaveformSeries.shotNo` 为空或未提供时,
|
|
299
310
|
炮号显示为“未配置炮号”;Tooltip 不显示单位和误差附加文本。
|
|
300
311
|
|
|
312
|
+
### 纵轴单位
|
|
313
|
+
|
|
314
|
+
可在每个 `WaveformSeries` 上设置可选的 `unit`,单位会显示在对应 Y 轴的顶部刻度中:
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
const chartData = {
|
|
318
|
+
kind: 'series',
|
|
319
|
+
series: [
|
|
320
|
+
{
|
|
321
|
+
id: 'voltage',
|
|
322
|
+
name: '电压',
|
|
323
|
+
unit: 'V',
|
|
324
|
+
data: {
|
|
325
|
+
kind: 'points',
|
|
326
|
+
points: [
|
|
327
|
+
{ x: 0, y: 1200 },
|
|
328
|
+
{ x: 1, y: 3000 },
|
|
329
|
+
],
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
],
|
|
333
|
+
} satisfies WaveformData
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
当 Y 轴使用科学计数法时,顶部刻度格式为 `E+03 (V) 3`;未使用科学计数法时,格式为
|
|
337
|
+
`(V) 3`。单位为空、全为空白或未配置时,不显示 `(单位)`,例如仍显示为 `E+03 3` 或 `3`。
|
|
338
|
+
多 Y 轴模式下,每根轴使用该轴首个 series 的单位。
|
|
339
|
+
|
|
301
340
|
### 线型、点型与误差棒
|
|
302
341
|
|
|
303
342
|
每条序列可以独立设置连线方式、数据点符号和误差棒:
|
|
@@ -669,7 +708,7 @@ async function importAnnotationFile(file: File) {
|
|
|
669
708
|
字段无效时会抛出 `TypeError`,不会返回部分结果。导入包含未知 `seriesId` 的标注是允许的,
|
|
670
709
|
对应曲线加载后会恢复显示。文件选择、错误提示和下载由业务层实现。
|
|
671
710
|
|
|
672
|
-
X 轴刻度和左右端点先按 `timeUnit` 转换为秒或毫秒,再显示为不带分组符和科学计数法的完整普通十进制值,并可通过 `axes.x.labelFormatter` 自定义。Y 轴会根据完整显示域选择格式:最大绝对值在 `[0.01, 100)` 时显示两位普通小数;大于等于 `100`,或大于 `0` 且小于 `0.01`
|
|
711
|
+
X 轴刻度和左右端点先按 `timeUnit` 转换为秒或毫秒,再显示为不带分组符和科学计数法的完整普通十进制值,并可通过 `axes.x.labelFormatter` 自定义。Y 轴会根据完整显示域选择格式:最大绝对值在 `[0.01, 100)` 时显示两位普通小数;大于等于 `100`,或大于 `0` 且小于 `0.01` 时,刻度显示两位缩放值,并在顶部刻度单独显示共享倍率 `E±NN`。如果 series 配置了 `unit`,顶部刻度会在倍率后追加 `(单位)`;没有科学计数法时也会显示 `(单位)`,多 Y 轴分别使用对应轴首个 series 的单位。tooltip 使用最多 4 位小数的本地化普通数字并省略无意义尾零;标注编辑器的 X 坐标跟随 `timeUnit` 并固定 3 位小数,Y 坐标显示完整普通十进制。所有格式化都只发生在展示层,内部坐标值保持原始精度。
|
|
673
712
|
标注框默认布局在采样点正上方,只做绘图区边界裁剪;文本框通过连接箭头指向标注位置,多个标注重叠时可通过拖动手动避让。
|
|
674
713
|
|
|
675
714
|
## 事件
|