Plotly.js
基于 d3.js 和 stack.gl 的开源 JavaScript 图表库,用 JSON 声明式配置生成 40 多种交互式图表,数据量大时可切 WebGL 渲染,适合前端开发者把数据做成可缩放、可悬停的网页图表。
Plotly.js 是一个开源的 JavaScript 图表库,用来在网页里画交互式图表。它建立在 d3.js 和 stack.gl 之上,把图表抽象成 JSON 对象——你描述数据、坐标轴、颜色、图例这些属性,它负责渲染出可缩放、可悬停的图形。对于需要把数据变成可探索图表的开发者,它省掉了从零搭渲染层的工作。
主要功能
它自带 40 多种图表类型,覆盖基础折线柱状饼图、统计类的箱线图与直方图、科学计算用的等高线图和热力图,还有金融 K 线、地图和 3D 曲面、3D 散点。大部分图表用 SVG 绘制,导出矢量图方便;数据点特别多时可以用 scattergl 走 WebGL 渲染,3D 图表也全部基于 WebGL,靠 GPU 保持交互流畅。图表的每个细节——网格线、边距、刻度格式——都有对应的 JSON 属性可以调。
适合谁
前端开发者、数据科学家和分析师。因为图表结构是声明式的 JSON,Python、R、MATLAB 的绘图库也拿它当浏览器端的渲染引擎,所以你在这些语言里见到的 Plotly 图表,底层跑的就是它。页面上的示例从散点图到动画、下拉菜单控件都有,照着改就能用。
费用与限制
plotly.js 本身免费且开源,源码在 GitHub 上,可以提 issue 或参与贡献。同站还有 Plotly Studio 和 Plotly Cloud 等付费产品,免费版给 10 个 Plotly credit 试用,Pro 版每个 Creator 席位每月 29 美元,这些是托管和协作服务的价格,和图表库是两回事。用之前需要会写 JavaScript,纯 SVG 图表在数据量极大时会有性能瓶颈,得换 WebGL 方案。