There are different JavaScript charting libraries available. Below is a comparison of which features are available in each.
Library Name | License | Free | Supported Chart Types | Supported Bar Chart Types | Other Features | Interactivity | Rendering Technologies | Databinding | HTML 5 Canvas | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Line | Timeline | Scatter | Area | Pie | Donut | Bullet | Radar | Funnel | Gantt | Network | Grouped | Mind Mapping | Stacked | Negative | Discrete | Horizontal | 3D | Legends | Animation | Mouse Over | onClick | HTML5 Canvas | SVG | VML | AxisXY | WebGL rendering | |||
AG Charts | MIT | Free [1] or commercial [2] | Yes [3] | Yes [4] | Yes [5] | Yes [6] | Yes [7] | Yes [8] | Yes [9] | Yes [10] | Yes [11] | Yes [12] | Yes [13] | Yes [14] | Yes [15] | Yes [16] | Yes [17] | Yes [18] | Yes | No | No | ||||||||
amCharts | Proprietary | Free with a link [19] or commercial [20] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [21] | Yes | No | |||
AnyChart | Proprietary | Free for education and non-profit use. [22] Paid for commercial applications. [23] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | ||
ApexCharts | MIT [24] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | ||||
billboard.js | MIT [25] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | ||
C3.js | MIT [26] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | |||
CanvasJS | Proprietary [27] | Free for Personal, Educational and Non-Commercial Uses | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [28] | No | No | Yes | No | ||
Chartist | WTFPL [29] or MIT [30] | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | No | No | ||||
Chart.js | MIT [31] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | |||
Chart Builder By Livegap | Free | Yes | Yes | No | No | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No [32] | No | No | ||||
Charts 4 PHP | Proprietary | Free basic edition [33] | No | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | |||||
Cytoscape.js | MIT [34] | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | No | Yes | No | |||
D3.js, formerly Protovis [35] [36] | BSD-3 [37] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [38] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes [39] | No | Yes | No | |||
DHTMLX Charts | GPL [40] | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | Yes [41] | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | No | ||||
Dojo Charting, part of Dojo Toolkit | BSD or AFL [42] | Yes | Yes | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes [43] | No | ||||
Dygraphs | MIT [44] | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | ||||
Echarts | Apache 2.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes [45] | No | Yes | Yes | ||
Frappe Charts | MIT | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | No | Yes | No | ||
FusionCharts | Proprietary | Free for personal and non-commercial uses. [46] Paid for commercial applications. [47] | Yes [48] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes [49] | No | |||||
Google Charts | Free [50] | Yes [50] | Yes | Yes | Yes | Yes | Yes | Yes [51] | No | No | Yes [52] | Yes [53] | Yes | Yes | Yes [54] | Yes [55] | Yes | Yes [56] | Yes | Yes | Yes | Yes [57] | Yes | Yes [58] | Yes [58] | Yes [59] | No | ||
Raphaël | MIT [60] | Yes | Yes | No | Yes | No | Yes | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes [61] | No | No | ||||
Greylock | Apache 2.0 [62] | Yes | Yes | No | No | No | Yes | Yes | No | No | Yes | No | No | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | ||||
Highcharts, Highstock | Proprietary | Free for personal and non-commercial uses. [63] Paid for commercial applications. [64] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [65] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||
JenScript | BSD-3 [66] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No [67] | Yes | No | Yes | No | |||
jqxChart, part of JQWidgets | Proprietary | Free with a link [68] or commercial [69] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | |||
JSCharting | Proprietary [70] | Free with branding [71] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | No | No | |||
KoolChart | Proprietary | Free with a link [72] or commercial [73] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [74] | No | Yes | Yes | No | ||
LightningChart JS | Proprietary | Free for personal and non-commercial uses. [75] Paid for commercial applications. [76] | Yes [77] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | |||
MuzeJS | MIT [78] | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | ||||
Pizza Amore | MIT | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | No | No | |||
plotly.js | MIT [79] | Yes | Yes | Yes [80] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | via Python [81] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes [82] | No | Yes | |||
PlusCharts | Free | Yes | Yes | No | No | Yes | Yes | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | ||||
RGraph | MIT [83] | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | |||
SciChart.js | Proprietary | Free personal and non-commercial uses. [84] Paid for commercial applications. [85] | Yes [86] | No | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | |
Shield UI | Proprietary | Non-commercial or commercial [87] | No | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes [88] | No | |||||
TeeChart JS | MIT [89] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | |||
VisJS - used in d3-graphviz | Apache 2.0 and MIT [90] | Yes | Yes [91] | Yes [92] | Yes [93] | Yes [94] | No | No | No | No | No | Yes [95] | Yes [96] | Yes | Yes | Yes | No | No | Yes [97] | Yes | Yes | Yes | Yes | No | No | No | |||
Vizzu | Apache 2.0 [98] | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | |
Webix JS Charts, part of Webix | GPL [99] | Yes | Yes [100] | No | Yes [101] | Yes [102] | Yes [103] | Yes [103] | No | Yes [104] | No | No | No | Yes [105] | Yes [106] | Yes | No | Yes [106] | Yes [107] | Yes [108] | Yes [109] | Yes | No | Yes | Yes | No | |||
ZingChart | Proprietary | Free with a link [110] or commercial [111] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [112] | Yes | No | ||||
ZoomCharts | Proprietary | Non-commercial or commercial [113] | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [114] | Yes | No | No | ||||
Syncfusion JS Charts | MIT | Free for education and non-profit use. Paid for commercial applications. | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
DOT is a graph description language, developed as a part of the Graphviz project. DOT graphs are typically stored as files with the .gv
or .dot
filename extension — .gv
is preferred, to avoid confusion with the .dot
extension used by versions of Microsoft Word before 2007. dot
is also the name of the main program to process DOT files in the Graphviz package.
Morphic is an interface construction environment which uses graphical objects called "Morphs" for simplified GUI-building which allow for flexibility and dynamism. It was originally created for Self, but later, was ported to other programming languages like Squeak, JavaScript, Python, and Objective-C.
This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.
Raphaël, named for Italian painter Raffaello Sanzio da Urbino, is a cross-browser JavaScript library that draws Vector graphics for web sites. It will use SVG for most browsers, but will use VML for older versions of Internet Explorer. Raphaël currently supports Chrome 5.0+ Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.
Adobe Wallaby is an application that turns FLA files into HTML5. On March 8, 2011, Adobe Systems released the first version of an experimental Flash to HTML5 converter, code named Wallaby. It has been quickly superseded by various other Adobe tools.
Modernizr is a JavaScript library that detects the features available in a user's browser. This lets web pages avoid unsupported features by informing the user their browser is not supported or loading a polyfill. Modernizr aims to provide feature detection in a consistent and easy to use manner that discourages the use of failure-prone browser sniffing.
In software development, a polyfill is code that implements a new standard feature of a deployment environment within an old version of that environment that does not natively support the feature. Most often, it refers to JavaScript code that implements an HTML5 or CSS web standard, either an established standard on older browsers, or a proposed standard on existing browsers. Polyfills are also used in PHP and Python.
A JavaScript graphics library is a JavaScript library used to aid in the creation of graphics for either the HTML5 canvas element or SVG. Such a library eases the development and display of graphic elements like particles, motion, animation, plotting, and 3D graphics. Most JavaScript graphics libraries also provide easier access to JavaScript events, add interactivity options, and data binding.
Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.
D3.js is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. It makes use of Scalable Vector Graphics (SVG), HTML5, and Cascading Style Sheets (CSS) standards. It is the successor to the earlier Protovis framework. Its development was noted in 2011, as version 2.0.0 was released in August 2011. With the release of version 4.0.0 in June 2016, D3 was changed from a single library into a collection of smaller, modular libraries that can be used independently.
PDF.js is a JavaScript library that renders Portable Document Format (PDF) files using the web standards-compliant HTML5 Canvas. The project is led by the Mozilla Corporation after Andreas Gal launched it in 2011.
The Windows Library for JavaScript is an open-source JavaScript library developed by Microsoft. It has been designed with the primary goal of easing development of Windows Store apps for Windows 8 and Windows 10, as well as Windows Phone apps for Windows Phone 8.1, Windows 10 Mobile and Xbox One applications using HTML5 and JavaScript, as an alternative to using WinRT XAML and C#, VB.NET or C++ (CX).
Webix is a JavaScript/HTML5/CSS3 UI toolkit for developing complex and dynamic cross-platform web applications.
OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.
Velocity is a cross-platform JavaScript library designed to simplify the client-side scripting of website animation. Velocity is free, open-source software licensed under the MIT License. It is the most popular open source web animation engine.
RGraph is an HTML5 software library for charting written in native JavaScript. It was created in 2008. RGraph started as an easy-to-use commercial tool based on HTML5 canvas only. It's currently freely available to use under the open-source GPL license and supports more than 50 chart types in both SVG and canvas.
Chart.js is a free, open-source JavaScript library for data visualization, which supports eight chart types: bar, line, area, pie (doughnut), bubble, radar, polar, and scatter. Created by London-based web developer Nick Downie in 2013, now it is maintained by the community and is the second most popular JavaScript charting library on GitHub by the number of stars after D3.js, considered significantly easier to use though less customizable than the latter. Chart.js renders in HTML5 canvas and is widely covered as one of the best data visualization libraries. It is available under the MIT license.
AnyChart is a JavaScript library for cross-platform data visualization in the form of interactive charts and dashboards. It was initially available as a Flash chart component and integrated as such by Oracle in APEX.
GoJS is a proprietary JavaScript library for diagramming and data visualization, which supports creation of multiple diagram types, such as Flowchart, Network Diagram, SCADA, Floor plan, Planogram, Genogram, and others. It was created in 2012 by Northwoods Software, the creators of the Sanscript visual programming language. GoJS renders in HTML5 canvas or SVG. The GoJS library has no dependencies.