Plotly.js is a standalone Javascript data visualization library, and it also powers the Python and R modules named plotly
in those respective ecosystems (referred to as Plotly.py and Plotly.R).
Plotly.js can be used to produce dozens of chart types and visualizations, including statistical charts, 3D graphs, scientific charts, SVG and tile maps, financial charts and more.
Contact us for Plotly.js consulting, dashboard development, application integration, and feature additions.
- Load from CDN
- Load from npm
- Versioning
- Partial bundles
- Alternative ways to require or build plotly.js
- Bugs and feature requests
- Documentation
- Contributing
- Community
- Notable contributors
- Copyright and license
Fastly supports Plotly.js with free CDN service. Read more at https://www.fastly.com/open-source.
<head>
<script src="https://cdn.plot.ly/plotly-2.0.0-rc.2.min.js"></script>
</head>
<body>
<div id="gd"></div>
<script>
Plotly.newPlot("gd", {
"data": [{
"y": [1, 2, 3]
}],
"layout": {
"width": 600,
"height": 400
}
});
</script>
</body>
In the example above Plotly
object is added to the window scope by the script in the head
section.
The newPlot
method is then used to draw an interactive figure as described by data
and layout
into the desired div
here named gd
.
As demonstrated in the example above basic knowledge of html
and JSON syntax is enough to get started i.e. with/without JavaScript!
To learn and build more with plotly.js please visit plotly.js documentation.
While non-minified source files may contain characters outside UTF-8, it is recommended that you specify the charset
when loading those bundles.
<script src="https://cdn.plot.ly/plotly-2.0.0-rc.2.js" charset="utf-8"></script>
Please note that as of v2 the "plotly-latest" outputs (e.g. https://cdn.plot.ly/plotly-latest.min.js) will no longer be updated on the CDN, and will stay at the last v1 patch v1.58.4. Therefore, to use the CDN with plotly.js v2 and higher, you must specify an exact plotly.js version.
npm install plotly.js-dist-min
and import plotly.js as
import Plotly from 'plotly.js-dist-min'
Or
var Plotly = require('plotly.js-dist-min')
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.
There are two kinds of plotly.js partial bundles:
- The official partial bundles that are distributed to
npm
and the CDN, described in the dist README. - Custom bundles you can create yourself, if none of the distributed packages meet your needs.
Use the traces
option to include just the trace types you need.
npm run partial-bundle -- --traces scatter,scattergl,scatter3d
Please note that the scatter
trace is currently included in all bundles and cannot be removed.
This behaviour may change in the future, so we recommend that you explicitly include scatter
anyway if you need it in your bundle.
By default all transforms are included in the bundle.
Use the transforms
option to specify which should be included.
npm run partial-bundle -- --transforms sort,filter
Or use transforms none
to exclude them all.
npm run partial-bundle -- --transforms none
Use the out
option to change the bundle filename (default custom
).
The new bundle will be created in the dist/
directory and named plotly-<out>.min.js
or plotly-<out>.js
if unminified.
npm run partial-bundle -- --out myBundleName
Use the unminified
option to disable compression.
npm run partial-bundle -- --unminified
To create an unminified custom bundle named myScatters
including scatter
, scattergl
and scatter3d
traces without any transforms:
npm run partial-bundle -- \
--unminified \
--out myScatters \
--traces scatter,scattergl,scatter3d \
--transforms none
Or simply on one line:
npm run partial-bundle -- --unminified --out myScatters --traces scatter,scattergl,scatter3d --transforms none
If your library needs to bundle or directly require plotly.js/lib/index.js or parts of its modules similar to index-basic in some other way than via an official or a custom bundle, or in case you want to tweak the default build configurations of browserify
or webpack
, etc. then please visit BUILDING.md
.
Have a bug or a feature request? Please open a Github issue keeping in mind the issue guidelines. You may also want to read about how changes get made to Plotly.js
Official plotly.js documentation is hosted at https://plotly.com/javascript.
These pages are generated by the Plotly graphing-library-docs repo built with Jekyll and publicly hosted on GitHub Pages. For more info about contributing to Plotly documentation, please read through contributing guidelines.
Load relevant MathJax (v2) files Before the plotly.js script tag:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG.js"></script>
<script src="https://cdn.plot.ly/plotly-2.0.0-rc.2.min.js"></script>
Please read through our contributing guidelines. Included are directions for opening issues, using plotly.js in your project and notes on development.
- Follow @plotlygraphs on Twitter for the latest Plotly news.
- Implementation help may be found on community.plot.com (tagged
plotly-js
) or on Stack Overflow (taggedplotly
). - Developers should use the keyword
plotly
on packages which modify or add to the functionality of plotly.js when distributing through npm.
Plotly.js is at the core of a large and dynamic ecosystem with many contributors who file issues, reproduce bugs, suggest improvements, write code in this repo (and other upstream or downstream ones) and help users in the Plotly community forum. The following people deserve special recognition for their outsized contributions to this ecosystem:
GitHub | Status | ||
---|---|---|---|
Alex C. Johnson | @alexcjohnson | Active, Maintainer | |
Mojtaba Samimi | @archmoj | @solarchvision | Active, Maintainer |
Antoine Roy-Gobeil | @antoinerg | Active, Maintainer | |
Nicolas Kruchten | @nicolaskruchten | @nicolaskruchten | Active, Maintainer |
Jon Mease | @jonmmease | @jonmmease | Active |
Étienne Tétreault-Pinard | @etpinard | @etpinard | Hall of Fame |
Mikola Lysenko | @mikolalysenko | @MikolaLysenko | Hall of Fame |
Ricky Reusser | @rreusser | @rickyreusser | Hall of Fame |
Dmitry Yv. | @dy | @DimaYv | Hall of Fame |
Robert Monfera | @monfera | @monfera | Hall of Fame |
Robert Möstl | @rmoestl | @rmoestl | Hall of Fame |
Nicolas Riesco | @n-riesco | Hall of Fame | |
Miklós Tusz | @mdtusz | @mdtusz | Hall of Fame |
Chelsea Douglas | @cldougl | Hall of Fame | |
Ben Postlethwaite | @bpostlethwaite | Hall of Fame | |
Chris Parmer | @chriddyp | Hall of Fame | |
Alex Vados | @alexander-daniel | Hall of Fame |
Code and documentation copyright 2021 Plotly, Inc.
Code released under the MIT license.