网络上的图表库选择很多,这很好!竞争对消费者来说是件好事。它能保证高品质。这里肯定也是如此。图表库的格局相当令人印象深刻,从免费且不错的到付费且出色的都有。
我们在这里专门限制了呈现的选项,只包含 SVG 图表。我认为 SVG 是图表的一种绝佳选择,因为
- 它在任何尺寸下都显示得很清晰
- 它易于设计
- 它可以是交互式的
- 而且它可以被制作得非常易于访问。
总的来说,我认为 SVG 是图表最佳选择,但它不是唯一选择。有一些工具可以从图表数据中创建扁平的栅格图形。有一些 <canvas> 图表选项。你甚至可以从 HTML 元素制作一个基本的图表。
早期考虑因素
选择库时,需要考虑很多方面。其中很多是相当明显的。我只想让你记住,有很多需要考虑的东西,所以值得看看各种解决方案。
- 付费还是免费?有些人预算很高,更愿意为软件付费。对另一些人来说,免费是唯一选择。
- 开源还是闭源?许可证是否与您正在构建的内容兼容?您正在构建的东西也是开源的并且兼容(或不兼容)吗?您是否正在重新分发您构建的东西,例如主题?您正在构建商业产品吗?归属要求是什么?
- 功能集是什么?您是否只需要一种图表类型?多种类型?它们是什么?您是否希望一个库可以帮助解决其他图表需求,例如股票或地图?
- 依赖项是什么?有些库需要 jQuery。更常见的是,需要一个 SVG 库,例如 D3。有些没有依赖项。
- 提供什么样的支持?购买时是否包含在内?您可以将其作为附加组件购买吗?您需要它吗?开源库看起来像提供帮助的地方吗?
- 它是否针对某个框架构建?其中一些选项专门针对 React、Angular 或 Embed 等框架。当然,也有一些选项针对 CMS 或专门针对来自特定后端语言的数据输出构建。
- 文档怎么样?有没有很多示例?它们的可读性如何?
- 您还需要什么其他功能?您的用户是否期望能够打印这些图表?导出数据?与它们交互?自定义它们?
- 主题是如何工作的?您是否需要它们自带不错的主题?您是否计划自己设计它们?
需要考虑的事情很多!
清单!
它很可能是不完整的。如果我错过了任何输出 SVG 的图表库,请在评论中告诉我!
我不会对每一个进行详细评论。考虑因素的清单非常庞大且多样,最终还是要由您来检查这些库并做出选择。我会在这里截取一些屏幕截图,以展示每个库的一些功能,以及一个实时演示(如果我能找到的话)。这并不能全面展示每个库的功能,只是提供一个简单的尝试。
amCharts

查看 CodePen 上的
使用 SVG 滤镜与 amCharts by amCharts (@amcharts)
在 CodePen 上。
Highcharts

查看 CodePen 上的
Highchart Javascript 集成 by Benjamin Cassinat (@benftwc)
在 CodePen 上。
Zingchart

FusionCharts

查看 CodePen 上的
使用 Fusion Charts 创建酷炫的图表 by Chris Vasquez (@cvasquez)
在 CodePen 上。
Google Charts

查看 CodePen 上的
在 Google Chart 中切换系列可见性 by Geoff (@gapple)
在 CodePen 上。
Plotly

查看 CodePen 上的
使用 Plotly JS 的响应式流体布局示例 by plotly (@plotly)
在 CodePen 上。
XCHARTS

查看 CodePen 上的
XCharts 基于 D3 的库 by Sten Hougaard (@netsi1964)
在 CodePen 上。
morris.js

查看 CodePen 上的
Morris.js 图表 - 简单示例 by Cioban Andrei (@andreic)
在 CodePen 上。
uvCharts

Contour

CHARTIST.JS

查看 CodePen 上由 Sarah Drasner (@sdras) 创建的
使用 Chartist 和动画。
在 CodePen 上。
n3-charts

查看 CodePen 上由 Jim Gibbs (@jimgibbs) 创建的
n3-Charts。
在 CodePen 上。
Ember charts

React SVG chart

使用 <canvas> 的选项
有很多专门输出到 <canvas> 的选项,例如 Chart.js。
我更喜欢 <svg>
,但如果你有充分的理由使用 canvas,这里还有一些其他选项:
祝你好运!如果你在其中任何一个选项上取得了成功,请告诉我们。
库在哪里?