SuperAPI AI 工具集

layercake

前端与建站

查看项目

更新于 10-15 21:47

技能介绍

Layer Cake 是面向 Svelte 的基础可视化框架,只处理坐标系与比例尺的数学计算,不限定视觉呈现,采用“自带组件”的方式。它通过响应式 Svelte store 建立上下文,把 D3 比例尺(linear、time、ordinal、log、threshold)和计算出的尺寸经 Svelte context API 提供给子组件,开发者编写消费这些 store 的可视化组件,而无需自行管理变换。

主要组件:LayerCake 作为根包装器,建立上下文、根据数据范围计算比例尺、管理响应式尺寸,并向子组件提供 x/y/r 比例尺 store;Svg、Canvas、Html 是不同渲染上下文的布局容器,可共存于同一坐标系,实现混合渲染(如 SVG 坐标轴 + Canvas 图形 + HTML 提示框);自定义组件从上下文消费 xScale$、yScale$ 等 store 并渲染元素。

核心概念:比例尺与尺寸方面,LayerCake 自动从数据范围创建 D3 比例尺,可通过 x、y、r、z 数据访问器,xDomain、yDomain、rDomain 显式域覆盖,padding 内边距,以及 xScale、yScale、rScale 自定义 D3 比例尺实例进行配置。数据变换方面,提供 stack()(堆叠布局)、bin()(直方图分箱)、groupLonger()(宽转长)、flatten()(一层展平)、calcExtents()(跨字段计算最小/最大值并跳过空值)等工具函数,应在传入 LayerCake 前使用。

渲染上下文:SVG 适合可访问性、交互与动画,适用于少于 500 个标记;Canvas 适合 5000 以上点的高性能 2D 渲染,可通过 bind:context 获取原始上下文,并用 scaleCanvas() 处理设备像素比;HTML 用于在图表空间中定位 DOM 元素(提示框、标签),可用 pointerEvents={false} 避免阻挡交互。

实现模式包括基础时间序列、堆叠面积图、高数据量散点图(Canvas 图层加 SVG 坐标轴叠加)、多比例尺响应式布局。高级技巧涵盖自定义比例尺、多数据集、通过 xScale.invert() 反算鼠标位置实现点击/悬停、自定义图例、SVG 自动包含 ARIA 属性等。性能上,比例尺计算仅在数据或域变化时进行,响应式尺寸更新在范围不变时不重算比例尺,Canvas 在现代设备上渲染 10000 点约 60fps,高数据量标记应避免使用 SVG,数据变换应在渲染函数生命周期外记忆化。所有响应式通过 Svelte store 与响应式语句实现,可与 SvelteKit 的 SSR 和客户端水合配合。限制方面,资料未提供具体收费、价格、平台支持范围或效果保证等信息。