What is highcharts?
The highcharts npm package is a charting library that allows developers to create interactive and responsive charts for web applications. It supports a wide range of chart types and features, including line, area, bar, pie, scatter, and more complex types like stock, maps, and Gantt charts. Highcharts is designed to work across all modern browsers and is compatible with various frameworks and platforms.
What are highcharts's main functionalities?
Line Charts
This code sample demonstrates how to create a basic line chart using Highcharts, showing the growth of solar employment in various sectors over time.
{"title": {"text": 'Solar Employment Growth by Sector, 2010-2016'},"subtitle": {"text": 'Source: thesolarfoundation.com'},"yAxis": {"title": {"text": 'Number of Employees'}},"legend": {"layout": 'vertical',"align": 'right',"verticalAlign": 'middle'},"plotOptions": {"series": {"label": {"connectorAllowed": false},"pointStart": 2010}},"series": [{"name": 'Installation',"data": [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]},{"name": 'Manufacturing',"data": [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]},{"name": 'Sales & Distribution',"data": [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]},{"name": 'Project Development',"data": [null, null, 7988, 12169, 15112, 22452, 34400, 34227]},{"name": 'Other',"data": [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]}],"responsive": {"rules": [{"condition": {"maxWidth": 500},"chartOptions": {"legend": {"layout": 'horizontal',"align": 'center',"verticalAlign": 'bottom'}}}]}}
Pie Charts
This code sample shows how to create an interactive pie chart with Highcharts, displaying browser market shares with options for selecting and slicing portions of the pie.
{"chart": {"plotBackgroundColor": null,"plotBorderWidth": null,"plotShadow": false,"type": 'pie'},"title": {"text": 'Browser market shares in January, 2018'},"tooltip": {"pointFormat": '{series.name}: <b>{point.percentage:.1f}%</b>'},"accessibility": {"point": {"valueSuffix": '%'}},"plotOptions": {"pie": {"allowPointSelect": true,"cursor": 'pointer',"dataLabels": {"enabled": true,"format": '<b>{point.name}</b>: {point.percentage:.1f} %'}}},"series": [{"name": 'Brands',"colorByPoint": true,"data": [{"name": 'Chrome',"y": 61.41,"sliced": true,"selected": true},{"name": 'Internet Explorer',"y": 11.84},{"name": 'Firefox',"y": 10.85},{"name": 'Edge',"y": 4.67},{"name": 'Safari',"y": 4.18},{"name": 'Other',"y": 7.05}]}]}
3D Charts
This code sample illustrates how to create a 3D column chart using Highcharts, which adds a new dimension to the data visualization for better analysis and presentation.
{"chart": {"type": 'column',"options3d": {"enabled": true,"alpha": 15,"beta": 15,"viewDistance": 25,"depth": 40}},"title": {"text": 'Total fruit consumption, grouped by gender'},"plotOptions": {"column": {"depth": 25}},"series": [{"name": 'John',"data": [2, 3, 0, 4, 5]},{"name": 'Joe',"data": [1, 1, 4, 7, 2]}]}
Other packages similar to highcharts
chart.js
Chart.js is a popular open-source charting library that is lightweight and offers a simple API. It supports eight chart types, including line, bar, radar, doughnut, pie, polar area, bubble, and scatter. Compared to Highcharts, Chart.js is more focused on simplicity and ease of use, but it may not offer as many features or as much flexibility for complex visualizations.
d3
D3.js is a powerful and flexible library for creating custom data visualizations using web standards. It provides a low-level approach, giving developers more control over the final visualization. While Highcharts offers a high-level API for creating standard chart types easily, D3.js requires more coding but allows for more unique and intricate visualizations.
echarts
ECharts is an open-source charting library that offers a rich set of chart types and options. It is capable of producing interactive and complex charts and maps. ECharts is similar to Highcharts in terms of functionality but is known for its strong support for mobile devices and ease of integration with the Baidu Map service.
amcharts
amCharts is a comprehensive charting library that provides a wide array of chart types and features, including 3D charts, gauge charts, and timelines. It is comparable to Highcharts in terms of its feature set and is known for its user-friendly interface and extensive documentation. However, amCharts uses a different licensing model, which may be a consideration for some projects.
Highcharts JS is a JavaScript charting library based on SVG and some canvas/WebGL.
Highcharts is a source available product. Please refer to shop.highcharts.com for details on licensing.
Installing and using Highcharts
This is the working repo for Highcharts code. If you simply want to include Highcharts into a project, use the distribution package instead, or read the download page.
Please note that there are several ways to use Highcharts. For general installation instructions, see the docs.
Use our CDN
Instead of downloading, you can use our CDN to access files directly. See code.highcharts.com for details.
<script src="https://code.highcharts.com/highcharts.js"></script>
Install from npm
See npm documentation on how to get started with npm.
npm install --save highcharts
ES6 modules, AMD, CommonJS and others
For other ways to use Highcharts in your projects, please refer to our installation docs.
Create your own custom build of Highcharts
To reduce file size, or combine modules into one file to reduce latency, you may
want to create your own build of the Highcharts modules. See Creating custom
Highcharts files
for more information.
Build and debug
If you want to do modifications to Highcharts or fix issues, you may build your own files. Highcharts uses Gulp as the build system. After npm install
in the root folder, run gulp
, which will set up a watch task for the JavaScript and CSS files. Now any changes in the files of the /js
or /css
folders will result in new files being built and saved in the code
folder. Other tasks are also available, like gulp lint
.
npm install
gulp
Node setup for Apple Mx CPU
When running Node natively on ARM64 MacOS, some Node packages like node-canvas with integrated compiling might fail. Install additional tools to resolve the problem:
- Homebrew and run
brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman
Generate API docs
Run in this highcharts
repository the doc generator with
npx gulp jsdoc-watch
, which also starts a new server with the generated API
documentation.