Skip to content

Open-source JavaScript charting library behind Plotly and Dash

License

Notifications You must be signed in to change notification settings

plotly/plotly.js

Repository files navigation

npm version circle ci MIT License

Plotly.jsis a standalone Javascript data visualization library, and it also powers the Python and R modules namedplotlyin those respective ecosystems (referred to asPlotly.pyandPlotly.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 usfor Plotly.js consulting, dashboard development, application integration, and feature additions.

Table of contents


Load as a node module

Installa ready-to-use distributed bundle

npm i --save plotly.js-dist-min

and use import or require in node.js

// ES6 module
importPlotlyfrom'plotly.js-dist-min'

// CommonJS
varPlotly=require('plotly.js-dist-min')

You may also consider usingplotly.js-distif you prefer using an unminified package.


Load via script tag

The script HTML element

In the examples belowPlotlyobject is added to the window scope byscript.ThenewPlotmethod is then used to draw an interactive figure as described bydataandlayoutinto the desireddivhere namedgd.As demonstrated in the example above basic knowledge ofhtmlandJSONsyntax is enough to get started i.e. with/without JavaScript! To learn and build more with plotly.js please visitplotly.js documentation.

<head>
<scriptsrc= "https://cdn.plot.ly/plotly-2.35.2.min.js"charset= "utf-8"></script>
</head>
<body>
<divid= "gd"></div>

<script>
Plotly.newPlot("gd",/* JSON object */{
"data":[{"y":[1,2,3]}],
"layout":{"width":600,"height":400}
})
</script>
</body>

Alternatively you may consider usingnative ES6 importin the script tag.

<scripttype= "module">
import"https://cdn.plot.ly/plotly-2.35.2.min.js"
Plotly.newPlot("gd",[{y:[1,2,3]}])
</script>

Fastly supports Plotly.js with free CDN service. Read more athttps://www.fastly.com/open-source.

Un-minified versions are also available on CDN

While non-minified source files may contain characters outside UTF-8, it is recommended that you specify thecharsetwhen loading those bundles.

<scriptsrc= "https://cdn.plot.ly/plotly-2.35.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.5. Therefore, to use the CDN with plotly.js v2 and higher, you must specify an exact plotly.js version.

MathJax

You could load either version two or version three of MathJax files, for example:

<scriptsrc= "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG.js"></script>
<scriptsrc= "https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-svg.js"></script>

When using MathJax version 3, it is also possible to usechtmloutput on the other parts of the page in addition tosvgoutput for the plotly graph. Please refer todevtools/test_dashboard/index-mathjax3chtml.htmlto see an example.

Need to have several WebGL graphs on a page?

You may simply loadvirtual-webglscript for WebGL 1 (not WebGL 2) before loading other scripts.

<scriptsrc= "https://unpkg.com/[email protected]/src/virtual-webgl.js"></script>

Bundles

There are two kinds of plotly.js bundles:

  1. Complete and partial official bundles that are distributed tonpmand theCDN,described inthe dist README.
  2. Custom bundles you can create yourself to optimize the size of bundle depending on your needs. Please visitCUSTOM_BUNDLEfor more information.

Alternative ways to load and build plotly.js

If your library needs to bundle or directly loadplotly.js/lib/index.jsor parts of its modules similar toindex-basicin some other way than via an official or a custom bundle, or in case you want to tweak the default build configurations, then please visitBUILDING.md.


Documentation

Official plotly.js documentation is hosted athttps://plotly.com/javascript.

These pages are generated by the Plotlygraphing-library-docs repobuilt withJekylland publicly hosted on GitHub Pages. For more info about contributing to Plotly documentation, please read throughcontributing guidelines.


Bugs and feature requests

Have a bug or a feature request? Pleaseopen a Github issuekeeping in mind theissue guidelines.You may also want to read abouthow changes get made to Plotly.js


Contributing

Please read through ourcontributing guidelines.Included are directions for opening issues, using plotly.js in your project and notes on development.


Notable contributors

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 Twitter Status
Alex C. Johnson @alexcjohnson Active, Maintainer
Mojtaba Samimi @archmoj @solarchvision Active, Maintainer
Emily Kellison-Linn @emilykl Active, Maintainer
My-Tien Nguyen @my-tien Active, Community Contributor
Birk Skyum @birkskyum Active, Community Contributor
Étienne Tétreault-Pinard @etpinard @etpinard Hall of Fame
Antoine Roy-Gobeil @antoinerg Hall of Fame
Jack Parmer @jackparmer Hall of Fame
Nicolas Kruchten @nicolaskruchten @nicolaskruchten Hall of Fame
Mikola Lysenko @mikolalysenko @MikolaLysenko Hall of Fame
Ricky Reusser @rreusser @rickyreusser Hall of Fame
Dmitry Yv. @dy @DimaYv Hall of Fame
Jon Mease @jonmmease @jonmmease 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
Hannah Ker @hannahker @hannahker11 Hall of Fame
Chris Parmer @chriddyp Hall of Fame
Alex Vados @alexander-daniel Hall of Fame

Copyright and license

Code and documentation copyright 2021 Plotly, Inc.

Code released under theMIT license.

Versioning

This project is maintained under theSemantic Versioning guidelines.

See theReleases sectionof our GitHub project for changelogs for each release version of plotly.js.


Community

  • Follow@plotlygraphson Twitter for the latest Plotly news.
  • Implementation help may be found on community.plot.com (taggedplotly-js) or on Stack Overflow (taggedplotly).
  • Developers should use the keywordplotlyon packages which modify or add to the functionality of plotly.js when distributing throughnpm.