| name | vislite-lib |
| description | VISLite数据可视化库开发助手。当用户需要创建Canvas/SVG/WebGL图表、实现树布局/饼图/柱状图布局、使用坐标投影(墨卡托/等角斜方位)、矩阵变换、插值函数等可视化算法时使用。 |
VISLite 数据可视化库
VISLite 是一款轻量、优雅的跨端数据可视化解决方案,支持 Web、uni-app、微信小程序、支付宝小程序等多平台。
官网: https://oi-contrib.github.io/VISLite
GitHub: https://github.com/oi-contrib/VISLite
安装
npm install --save vislite
模块索引
画笔 (Brushes)
跨平台 Canvas(H5 / 微信 / 支付宝 / uni-app)
H5 专用画笔
布局算法 (Layouts)
坐标投影 (Projections)
变换与插值
工具函数
- Utilities.md - ruler 刻度尺、animation 动画、getLoopColors 循环颜色、throttle 节流
画笔平台支持说明
| 画笔 | H5 | 微信小程序 | 支付宝小程序 | uni-app |
|---|
| Canvas | ✅ new Canvas(el) | ✅ 组件方式 | ✅ 组件方式 | ✅ 组件方式 |
| SVG | ✅ new SVG(el) | ❌ | ❌ | ❌ |
| WebGL | ✅ getWebGLContext() | ❌ | ❌ | ❌ |
| RawCanvas | ✅ | ✅ | ✅ | ✅ |
注意: SVG 和 WebGL 仅支持 H5 端。Canvas 在不同平台的 API 完全一致,但初始化方式不同:
- H5:
new Canvas(domElement)
- 小程序: 通过 ui-canvas 组件的
fetch() 方法获取实例
快速使用
H5 端使用 Canvas
import { Canvas } from 'vislite';
var painter = new Canvas(document.getElementById('root'));
painter.config({
fillStyle: "red"
}).fillCircle(200, 150, 100);
painter.setRegion('circle');
painter.bind('click', (regionName, x, y) => {
console.log(regionName, x, y);
});
小程序端使用 Canvas
详见各小程序平台的文档:
树布局
import { Canvas, TreeLayout } from 'vislite';
var treeLayout = new TreeLayout();
treeLayout.setOption({
type: "rect",
direction: "TB",
x: 250,
y: 20,
width: 500,
height: 260
});
var tree = treeLayout.use(data);
for (var key in tree.node) {
var pid = tree.node[key].pid;
if (pid) {
painter.beginPath()
.moveTo(tree.node[key].left, tree.node[key].top)
.bezierCurveTo(...)
.stroke();
}
}
painter.fullCircle(tree.node[key].left, tree.node[key].top, 10);
核心导出
import {
Canvas,
SVG,
RawCanvas,
TreeLayout,
PieLayout,
BarLayout,
Mercator,
Eoap,
MapCoordinate,
Matrix4,
rotate,
move,
scale,
Cardinal,
Hermite,
ruler,
animation,
getLoopColors,
throttle,
assemble,
getWebGLContext,
Shader,
Texture,
Buffer
} from 'vislite';
典型场景
- 创建跨平台图表(柱状图、饼图、树图)
- 地图可视化(墨卡托/等角斜方位投影)
- 画布/SVG/WebGL 图形绑制
- 数据可视化算法应用
- 矩阵变换与插值计算
- 小程序/uni-app 多端开发