
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
plotly.js
Advanced tools
Built on top of d3.js and stack.gl, plotly.js is a high-level, declarative charting library. plotly.js ships with 20 chart types, including 3D charts, statistical graphs, and SVG maps.
and use the plotly.js dist file(s). More info here.
git clone https://github.com/plotly/plotly.js.git
and use the plotly.js dist file(s).
npmnpm install plotly.js
and require plotly.js using CommonJS as var Plotly = require('plotly.js'); or use the plotly.js dist file(s).
<!-- Latest compiled and minified plotly.js JavaScript -->
<script type="text/javascript" src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<!-- OR use a specific plotly.js release (e.g. version 1.5.0) -->
<script type="text/javascript" src="https://cdn.plot.ly/plotly-1.5.0.min.js"></script>
<!-- OR an un-minified version is also available -->
<script type="text/javascript" src="https://cdn.plot.ly/plotly-latest.js"></script>
and use the Plotly object in the window scope.
Starting in v1.15.0, plotly.js also ships with several partial bundles (more info here).
If you would like to manually pick which plotly.js modules to include, you can create a custom bundle by using plotly.js/lib/core, and loading only the trace types that you need (e.g. pie or choropleth). The recommended way to do this is by creating a bundling file:
// in custom-plotly.js
var Plotly = require('plotly.js/lib/core');
// Load in the trace types for pie, and choropleth
Plotly.register([
require('plotly.js/lib/pie'),
require('plotly.js/lib/choropleth')
]);
module.exports = Plotly;
Then elsewhere in your code:
var Plotly = require('./path/to/custom-plotly');
To learn more about the plotly.js module architecture, refer to our modularizing monolithic JS projects post.
Important: the plotly.js code base contains some non-ascii characters. Therefore, please make sure to set the charset attribute to "utf-8" in the script tag that imports your plotly.js bundle. For example:
<script type="text/javascript" src="my-plotly-bundle.js" charset="utf-8"></script>
Browserify transforms are required to build plotly.js, namely, glslify to transform WebGL shaders and cwise to compile component-wise array operations. To make the trace module system work with Webpack, you will need to install ify-loader and add it to your webpack.config.json for your build to correctly bundle plotly.js files.
Have a bug or a feature request? Please first read the issues guidelines.
Official plotly.js documentation is hosted on plot.ly/javascript.
These pages are generated by the Plotly documentation repo built with Jekyll and publicly hosted on GitHub Pages. For more info about contributing to Plotly documentation, please read through contributing guidelines.
You can also suggest new documentation examples by submitting a Codepen on community.plot.ly with tag plotly-js.
Please read through our contributing guidelines. Included are directions for opening issues, using plotly.js in your project and notes on development.
plotly-js) or
on Stack Overflow (tagged plotly).plotly on packages which modify or add to the functionality of plotly.js when distributing through npm.This project is maintained under the Semantic Versioning guidelines.
See the Releases section of our GitHub project for changelogs for each release version of plotly.js.
Open-source clients to the plotly.js APIs are available at these links:
| GitHub repo | Getting started | |
|---|---|---|
| R / RStudio | ropensci/plotly | plot.ly/r/getting-started |
| Python / Pandas / IPython notebook | plotly/plotly.py | plot.ly/python/getting-started |
| MATLAB | plotly/matlab-api | plot.ly/matlab/getting-started |
| node.js / Tonicdev / Jupyter notebook | plotly/plotly-notebook-js | |
| node.js cloud client | plotly/plotly-nodejs | plot.ly/nodejs/getting-started |
| Julia | plotly/Plotly.jl | plot.ly/julia/getting-started |
plotly.js charts can also be created and saved online for free at plot.ly/plot.
| Github | ||
|---|---|---|
| Alex C. Johnson | @alexcjohnson | |
| Étienne Tétreault-Pinard | @etpinard | @etpinard |
| Mikola Lysenko | @mikolalysenko | @MikolaLysenko |
| Miklós Tusz | @mdtusz | @mdtusz |
| Chelsea Douglas | @cldougl | |
| Ben Postlethwaite | @bpostlethwaite | |
| Chris Parmer | @chriddyp | |
| Alex Vados | @alexander-daniel |
Code and documentation copyright 2016 Plotly, Inc.
Code released under the MIT license.
Docs released under the Creative Commons license.
Chart.js is a simple yet flexible JavaScript charting library for designers & developers. It offers a good variety of chart types and is known for its ease of use and integration. Compared to Plotly.js, Chart.js is more lightweight but may lack some of the advanced features and customization options.
Highcharts is a charting library written in pure JavaScript, offering an easy way of adding interactive charts to your web site or web application. Highcharts is known for its rich feature set and extensive documentation. It is comparable to Plotly.js in terms of functionality but is often used in commercial applications due to its licensing model.
D3.js is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. It uses SVG, HTML, and CSS. D3.js is highly flexible and powerful but has a steeper learning curve compared to Plotly.js, which abstracts many of the complexities of D3.js.
ECharts is a free, powerful charting and visualization library offering an easy way of adding intuitive, interactive, and highly customizable charts. It is similar to Plotly.js in terms of functionality and is known for its performance and ease of use.
FAQs
The open source javascript graphing library that powers plotly
The npm package plotly.js receives a total of 258,609 weekly downloads. As such, plotly.js popularity was classified as popular.
We found that plotly.js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 14 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.