mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-07-02 14:27:31 +00:00
first commit
This commit is contained in:
16
.venv/Lib/site-packages/plotly/offline/__init__.py
Normal file
16
.venv/Lib/site-packages/plotly/offline/__init__.py
Normal file
@ -0,0 +1,16 @@
|
||||
"""
|
||||
offline
|
||||
======
|
||||
This module provides offline functionality.
|
||||
"""
|
||||
from .offline import (
|
||||
download_plotlyjs,
|
||||
get_plotlyjs_version,
|
||||
get_plotlyjs,
|
||||
enable_mpl_offline,
|
||||
init_notebook_mode,
|
||||
iplot,
|
||||
iplot_mpl,
|
||||
plot,
|
||||
plot_mpl,
|
||||
)
|
@ -0,0 +1,3 @@
|
||||
# DO NOT EDIT
|
||||
# This file is generated by the updatebundle setup.py command
|
||||
__plotlyjs_version__ = "2.12.1"
|
840
.venv/Lib/site-packages/plotly/offline/offline.py
Normal file
840
.venv/Lib/site-packages/plotly/offline/offline.py
Normal file
@ -0,0 +1,840 @@
|
||||
""" Plotly Offline
|
||||
A module to use Plotly's graphing library with Python
|
||||
without connecting to a public or private plotly enterprise
|
||||
server.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
import warnings
|
||||
import pkgutil
|
||||
import plotly
|
||||
import plotly.tools
|
||||
|
||||
from plotly.optional_imports import get_module
|
||||
from plotly import tools
|
||||
from ._plotlyjs_version import __plotlyjs_version__
|
||||
|
||||
|
||||
__IMAGE_FORMATS = ["jpeg", "png", "webp", "svg"]
|
||||
|
||||
|
||||
def download_plotlyjs(download_url):
|
||||
warnings.warn(
|
||||
"""
|
||||
`download_plotlyjs` is deprecated and will be removed in the
|
||||
next release. plotly.js is shipped with this module, it is no
|
||||
longer necessary to download this bundle separately.
|
||||
""",
|
||||
DeprecationWarning,
|
||||
)
|
||||
pass
|
||||
|
||||
|
||||
def get_plotlyjs_version():
|
||||
"""
|
||||
Returns the version of plotly.js that is bundled with plotly.py.
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
Plotly.js version string
|
||||
"""
|
||||
return __plotlyjs_version__
|
||||
|
||||
|
||||
def get_plotlyjs():
|
||||
"""
|
||||
Return the contents of the minified plotly.js library as a string.
|
||||
|
||||
This may be useful when building standalone HTML reports.
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
Contents of the minified plotly.js library as a string
|
||||
|
||||
Examples
|
||||
--------
|
||||
Here is an example of creating a standalone HTML report that contains
|
||||
two plotly figures, each in their own div. The include_plotlyjs argument
|
||||
is set to False when creating the divs so that we don't include multiple
|
||||
copies of the plotly.js library in the output. Instead, a single copy
|
||||
of plotly.js is included in a script tag in the html head element.
|
||||
|
||||
>>> import plotly.graph_objs as go
|
||||
>>> from plotly.offline import plot, get_plotlyjs
|
||||
>>> fig1 = go.Figure(data=[{'type': 'bar', 'y': [1, 3, 2]}],
|
||||
... layout={'height': 400})
|
||||
>>> fig2 = go.Figure(data=[{'type': 'scatter', 'y': [1, 3, 2]}],
|
||||
... layout={'height': 400})
|
||||
>>> div1 = plot(fig1, output_type='div', include_plotlyjs=False)
|
||||
>>> div2 = plot(fig2, output_type='div', include_plotlyjs=False)
|
||||
|
||||
>>> html = '''
|
||||
... <html>
|
||||
... <head>
|
||||
... <script type="text/javascript">{plotlyjs}</script>
|
||||
... </head>
|
||||
... <body>
|
||||
... {div1}
|
||||
... {div2}
|
||||
... </body>
|
||||
... </html>
|
||||
... '''.format(plotlyjs=get_plotlyjs(), div1=div1, div2=div2)
|
||||
|
||||
>>> with open('multi_plot.html', 'w') as f:
|
||||
... f.write(html) # doctest: +SKIP
|
||||
"""
|
||||
path = os.path.join("package_data", "plotly.min.js")
|
||||
plotlyjs = pkgutil.get_data("plotly", path).decode("utf-8")
|
||||
return plotlyjs
|
||||
|
||||
|
||||
def _build_resize_script(plotdivid, plotly_root="Plotly"):
|
||||
resize_script = (
|
||||
'<script type="text/javascript">'
|
||||
'window.addEventListener("resize", function(){{'
|
||||
'if (document.getElementById("{id}")) {{'
|
||||
'{plotly_root}.Plots.resize(document.getElementById("{id}"));'
|
||||
"}};}})"
|
||||
"</script>"
|
||||
).format(plotly_root=plotly_root, id=plotdivid)
|
||||
return resize_script
|
||||
|
||||
|
||||
def _build_mathjax_script(url):
|
||||
return '<script src="{url}?config=TeX-AMS-MML_SVG"></script>'.format(url=url)
|
||||
|
||||
|
||||
def _get_jconfig(config=None):
|
||||
|
||||
configkeys = (
|
||||
"staticPlot",
|
||||
"plotlyServerURL",
|
||||
"editable",
|
||||
"edits",
|
||||
"autosizable",
|
||||
"responsive",
|
||||
"queueLength",
|
||||
"fillFrame",
|
||||
"frameMargins",
|
||||
"scrollZoom",
|
||||
"doubleClick",
|
||||
"showTips",
|
||||
"showAxisDragHandles",
|
||||
"showAxisRangeEntryBoxes",
|
||||
"showLink",
|
||||
"sendData",
|
||||
"showSendToCloud",
|
||||
"linkText",
|
||||
"showSources",
|
||||
"displayModeBar",
|
||||
"modeBarButtonsToRemove",
|
||||
"modeBarButtonsToAdd",
|
||||
"modeBarButtons",
|
||||
"toImageButtonOptions",
|
||||
"displaylogo",
|
||||
"watermark",
|
||||
"plotGlPixelRatio",
|
||||
"setBackground",
|
||||
"topojsonURL",
|
||||
"mapboxAccessToken",
|
||||
"logging",
|
||||
"globalTransforms",
|
||||
"locale",
|
||||
"locales",
|
||||
"doubleClickDelay",
|
||||
)
|
||||
|
||||
if config and isinstance(config, dict):
|
||||
# Warn user on unrecognized config options. We make this a warning
|
||||
# rather than an error since we don't have code generation logic in
|
||||
# place yet to guarantee that the config options in plotly.py are up
|
||||
# to date
|
||||
bad_config = [k for k in config if k not in configkeys]
|
||||
if bad_config:
|
||||
warnings.warn(
|
||||
"""
|
||||
Unrecognized config options supplied: {bad_config}""".format(
|
||||
bad_config=bad_config
|
||||
)
|
||||
)
|
||||
|
||||
clean_config = config
|
||||
else:
|
||||
clean_config = {}
|
||||
|
||||
plotly_platform_url = plotly.tools.get_config_plotly_server_url()
|
||||
|
||||
if not clean_config.get("plotlyServerURL", None):
|
||||
clean_config["plotlyServerURL"] = plotly_platform_url
|
||||
|
||||
if (
|
||||
plotly_platform_url != "https://plot.ly"
|
||||
and clean_config.get("linkText", None) == "Export to plot.ly"
|
||||
):
|
||||
link_domain = plotly_platform_url.replace("https://", "").replace("http://", "")
|
||||
link_text = clean_config["linkText"].replace("plot.ly", link_domain)
|
||||
clean_config["linkText"] = link_text
|
||||
|
||||
return clean_config
|
||||
|
||||
|
||||
# Build script to set global PlotlyConfig object. This must execute before
|
||||
# plotly.js is loaded.
|
||||
_window_plotly_config = """\
|
||||
<script type="text/javascript">\
|
||||
window.PlotlyConfig = {MathJaxConfig: 'local'};\
|
||||
</script>"""
|
||||
|
||||
_mathjax_config = """\
|
||||
<script type="text/javascript">\
|
||||
if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}\
|
||||
</script>"""
|
||||
|
||||
|
||||
def get_image_download_script(caller):
|
||||
"""
|
||||
This function will return a script that will download an image of a Plotly
|
||||
plot.
|
||||
|
||||
Keyword Arguments:
|
||||
caller ('plot', 'iplot') -- specifies which function made the call for the
|
||||
download script. If `iplot`, then an extra condition is added into the
|
||||
download script to ensure that download prompts aren't initiated on
|
||||
page reloads.
|
||||
"""
|
||||
|
||||
if caller == "iplot":
|
||||
check_start = "if(document.readyState == 'complete') {{"
|
||||
check_end = "}}"
|
||||
elif caller == "plot":
|
||||
check_start = ""
|
||||
check_end = ""
|
||||
else:
|
||||
raise ValueError("caller should only be one of `iplot` or `plot`")
|
||||
|
||||
return (
|
||||
"function downloadimage(format, height, width,"
|
||||
" filename) {{"
|
||||
"var p = document.getElementById('{{plot_id}}');"
|
||||
"Plotly.downloadImage(p, {{format: format, height: height, "
|
||||
"width: width, filename: filename}});}};"
|
||||
+ check_start
|
||||
+ "downloadimage('{format}', {height}, {width}, "
|
||||
"'{filename}');" + check_end
|
||||
)
|
||||
|
||||
|
||||
def build_save_image_post_script(
|
||||
image, image_filename, image_height, image_width, caller
|
||||
):
|
||||
if image:
|
||||
if image not in __IMAGE_FORMATS:
|
||||
raise ValueError(
|
||||
"The image parameter must be one of the "
|
||||
"following: {}".format(__IMAGE_FORMATS)
|
||||
)
|
||||
|
||||
script = get_image_download_script(caller)
|
||||
post_script = script.format(
|
||||
format=image,
|
||||
width=image_width,
|
||||
height=image_height,
|
||||
filename=image_filename,
|
||||
)
|
||||
else:
|
||||
post_script = None
|
||||
|
||||
return post_script
|
||||
|
||||
|
||||
def init_notebook_mode(connected=False):
|
||||
"""
|
||||
Initialize plotly.js in the browser if it hasn't been loaded into the DOM
|
||||
yet. This is an idempotent method and can and should be called from any
|
||||
offline methods that require plotly.js to be loaded into the notebook dom.
|
||||
|
||||
Keyword arguments:
|
||||
|
||||
connected (default=False) -- If True, the plotly.js library will be loaded
|
||||
from an online CDN. If False, the plotly.js library will be loaded locally
|
||||
from the plotly python package
|
||||
|
||||
Use `connected=True` if you want your notebooks to have smaller file sizes.
|
||||
In the case where `connected=False`, the entirety of the plotly.js library
|
||||
will be loaded into the notebook, which will result in a file-size increase
|
||||
of a couple megabytes. Additionally, because the library will be downloaded
|
||||
from the web, you and your viewers must be connected to the internet to be
|
||||
able to view charts within this notebook.
|
||||
|
||||
Use `connected=False` if you want you and your collaborators to be able to
|
||||
create and view these charts regardless of the availability of an internet
|
||||
connection. This is the default option since it is the most predictable.
|
||||
Note that under this setting the library will be included inline inside
|
||||
your notebook, resulting in much larger notebook sizes compared to the case
|
||||
where `connected=True`.
|
||||
"""
|
||||
import plotly.io as pio
|
||||
|
||||
ipython = get_module("IPython")
|
||||
if not ipython:
|
||||
raise ImportError("`iplot` can only run inside an IPython Notebook.")
|
||||
|
||||
if connected:
|
||||
pio.renderers.default = "plotly_mimetype+notebook_connected"
|
||||
else:
|
||||
pio.renderers.default = "plotly_mimetype+notebook"
|
||||
|
||||
# Trigger immediate activation of notebook. This way the plotly.js
|
||||
# library reference is available to the notebook immediately
|
||||
pio.renderers._activate_pending_renderers()
|
||||
|
||||
|
||||
def iplot(
|
||||
figure_or_data,
|
||||
show_link=False,
|
||||
link_text="Export to plot.ly",
|
||||
validate=True,
|
||||
image=None,
|
||||
filename="plot_image",
|
||||
image_width=800,
|
||||
image_height=600,
|
||||
config=None,
|
||||
auto_play=True,
|
||||
animation_opts=None,
|
||||
):
|
||||
"""
|
||||
Draw plotly graphs inside an IPython or Jupyter notebook
|
||||
|
||||
figure_or_data -- a plotly.graph_objs.Figure or plotly.graph_objs.Data or
|
||||
dict or list that describes a Plotly graph.
|
||||
See https://plot.ly/python/ for examples of
|
||||
graph descriptions.
|
||||
|
||||
Keyword arguments:
|
||||
show_link (default=False) -- display a link in the bottom-right corner of
|
||||
of the chart that will export the chart to
|
||||
Plotly Cloud or Plotly Enterprise
|
||||
link_text (default='Export to plot.ly') -- the text of export link
|
||||
validate (default=True) -- validate that all of the keys in the figure
|
||||
are valid? omit if your version of plotly.js
|
||||
has become outdated with your version of
|
||||
graph_reference.json or if you need to include
|
||||
extra, unnecessary keys in your figure.
|
||||
image (default=None |'png' |'jpeg' |'svg' |'webp') -- This parameter sets
|
||||
the format of the image to be downloaded, if we choose to download an
|
||||
image. This parameter has a default value of None indicating that no
|
||||
image should be downloaded. Please note: for higher resolution images
|
||||
and more export options, consider using plotly.io.write_image. See
|
||||
https://plot.ly/python/static-image-export/ for more details.
|
||||
filename (default='plot') -- Sets the name of the file your image
|
||||
will be saved to. The extension should not be included.
|
||||
image_height (default=600) -- Specifies the height of the image in `px`.
|
||||
image_width (default=800) -- Specifies the width of the image in `px`.
|
||||
config (default=None) -- Plot view options dictionary. Keyword arguments
|
||||
`show_link` and `link_text` set the associated options in this
|
||||
dictionary if it doesn't contain them already.
|
||||
auto_play (default=True) -- Whether to automatically start the animation
|
||||
sequence on page load, if the figure contains frames. Has no effect if
|
||||
the figure does not contain frames.
|
||||
animation_opts (default=None) -- Dict of custom animation parameters that
|
||||
are used for the automatically started animation on page load. This
|
||||
dict is passed to the function Plotly.animate in Plotly.js. See
|
||||
https://github.com/plotly/plotly.js/blob/master/src/plots/animation_attributes.js
|
||||
for available options. Has no effect if the figure
|
||||
does not contain frames, or auto_play is False.
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import init_notebook_mode, iplot
|
||||
init_notebook_mode()
|
||||
iplot([{'x': [1, 2, 3], 'y': [5, 2, 7]}])
|
||||
# We can also download an image of the plot by setting the image to the
|
||||
format you want. e.g. `image='png'`
|
||||
iplot([{'x': [1, 2, 3], 'y': [5, 2, 7]}], image='png')
|
||||
```
|
||||
|
||||
animation_opts Example:
|
||||
```
|
||||
from plotly.offline import iplot
|
||||
figure = {'data': [{'x': [0, 1], 'y': [0, 1]}],
|
||||
'layout': {'xaxis': {'range': [0, 5], 'autorange': False},
|
||||
'yaxis': {'range': [0, 5], 'autorange': False},
|
||||
'title': 'Start Title'},
|
||||
'frames': [{'data': [{'x': [1, 2], 'y': [1, 2]}]},
|
||||
{'data': [{'x': [1, 4], 'y': [1, 4]}]},
|
||||
{'data': [{'x': [3, 4], 'y': [3, 4]}],
|
||||
'layout': {'title': 'End Title'}}]}
|
||||
iplot(figure, animation_opts={'frame': {'duration': 1}})
|
||||
```
|
||||
"""
|
||||
import plotly.io as pio
|
||||
|
||||
ipython = get_module("IPython")
|
||||
if not ipython:
|
||||
raise ImportError("`iplot` can only run inside an IPython Notebook.")
|
||||
|
||||
config = dict(config) if config else {}
|
||||
config.setdefault("showLink", show_link)
|
||||
config.setdefault("linkText", link_text)
|
||||
|
||||
# Get figure
|
||||
figure = tools.return_figure_from_figure_or_data(figure_or_data, validate)
|
||||
|
||||
# Handle image request
|
||||
post_script = build_save_image_post_script(
|
||||
image, filename, image_height, image_width, "iplot"
|
||||
)
|
||||
|
||||
# Show figure
|
||||
pio.show(
|
||||
figure,
|
||||
validate=validate,
|
||||
config=config,
|
||||
auto_play=auto_play,
|
||||
post_script=post_script,
|
||||
animation_opts=animation_opts,
|
||||
)
|
||||
|
||||
|
||||
def plot(
|
||||
figure_or_data,
|
||||
show_link=False,
|
||||
link_text="Export to plot.ly",
|
||||
validate=True,
|
||||
output_type="file",
|
||||
include_plotlyjs=True,
|
||||
filename="temp-plot.html",
|
||||
auto_open=True,
|
||||
image=None,
|
||||
image_filename="plot_image",
|
||||
image_width=800,
|
||||
image_height=600,
|
||||
config=None,
|
||||
include_mathjax=False,
|
||||
auto_play=True,
|
||||
animation_opts=None,
|
||||
):
|
||||
"""Create a plotly graph locally as an HTML document or string.
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import plot
|
||||
import plotly.graph_objs as go
|
||||
|
||||
plot([go.Scatter(x=[1, 2, 3], y=[3, 2, 6])], filename='my-graph.html')
|
||||
# We can also download an image of the plot by setting the image parameter
|
||||
# to the image format we want
|
||||
plot([go.Scatter(x=[1, 2, 3], y=[3, 2, 6])], filename='my-graph.html',
|
||||
image='jpeg')
|
||||
```
|
||||
More examples below.
|
||||
|
||||
figure_or_data -- a plotly.graph_objs.Figure or plotly.graph_objs.Data or
|
||||
dict or list that describes a Plotly graph.
|
||||
See https://plot.ly/python/ for examples of
|
||||
graph descriptions.
|
||||
|
||||
Keyword arguments:
|
||||
show_link (default=False) -- display a link in the bottom-right corner of
|
||||
of the chart that will export the chart to Plotly Cloud or
|
||||
Plotly Enterprise
|
||||
link_text (default='Export to plot.ly') -- the text of export link
|
||||
validate (default=True) -- validate that all of the keys in the figure
|
||||
are valid? omit if your version of plotly.js has become outdated
|
||||
with your version of graph_reference.json or if you need to include
|
||||
extra, unnecessary keys in your figure.
|
||||
output_type ('file' | 'div' - default 'file') -- if 'file', then
|
||||
the graph is saved as a standalone HTML file and `plot`
|
||||
returns None.
|
||||
If 'div', then `plot` returns a string that just contains the
|
||||
HTML <div> that contains the graph and the script to generate the
|
||||
graph.
|
||||
Use 'file' if you want to save and view a single graph at a time
|
||||
in a standalone HTML file.
|
||||
Use 'div' if you are embedding these graphs in an HTML file with
|
||||
other graphs or HTML markup, like a HTML report or an website.
|
||||
include_plotlyjs (True | False | 'cdn' | 'directory' | path - default=True)
|
||||
Specifies how the plotly.js library is included in the output html
|
||||
file or div string.
|
||||
|
||||
If True, a script tag containing the plotly.js source code (~3MB)
|
||||
is included in the output. HTML files generated with this option are
|
||||
fully self-contained and can be used offline.
|
||||
|
||||
If 'cdn', a script tag that references the plotly.js CDN is included
|
||||
in the output. HTML files generated with this option are about 3MB
|
||||
smaller than those generated with include_plotlyjs=True, but they
|
||||
require an active internet connection in order to load the plotly.js
|
||||
library.
|
||||
|
||||
If 'directory', a script tag is included that references an external
|
||||
plotly.min.js bundle that is assumed to reside in the same
|
||||
directory as the HTML file. If output_type='file' then the
|
||||
plotly.min.js bundle is copied into the directory of the resulting
|
||||
HTML file. If a file named plotly.min.js already exists in the output
|
||||
directory then this file is left unmodified and no copy is performed.
|
||||
HTML files generated with this option can be used offline, but they
|
||||
require a copy of the plotly.min.js bundle in the same directory.
|
||||
This option is useful when many figures will be saved as HTML files in
|
||||
the same directory because the plotly.js source code will be included
|
||||
only once per output directory, rather than once per output file.
|
||||
|
||||
If a string that ends in '.js', a script tag is included that
|
||||
references the specified path. This approach can be used to point
|
||||
the resulting HTML file to an alternative CDN.
|
||||
|
||||
If False, no script tag referencing plotly.js is included. This is
|
||||
useful when output_type='div' and the resulting div string will be
|
||||
placed inside an HTML document that already loads plotly.js. This
|
||||
option is not advised when output_type='file' as it will result in
|
||||
a non-functional html file.
|
||||
filename (default='temp-plot.html') -- The local filename to save the
|
||||
outputted chart to. If the filename already exists, it will be
|
||||
overwritten. This argument only applies if `output_type` is 'file'.
|
||||
auto_open (default=True) -- If True, open the saved file in a
|
||||
web browser after saving.
|
||||
This argument only applies if `output_type` is 'file'.
|
||||
image (default=None |'png' |'jpeg' |'svg' |'webp') -- This parameter sets
|
||||
the format of the image to be downloaded, if we choose to download an
|
||||
image. This parameter has a default value of None indicating that no
|
||||
image should be downloaded. Please note: for higher resolution images
|
||||
and more export options, consider making requests to our image servers.
|
||||
Type: `help(py.image)` for more details.
|
||||
image_filename (default='plot_image') -- Sets the name of the file your
|
||||
image will be saved to. The extension should not be included.
|
||||
image_height (default=600) -- Specifies the height of the image in `px`.
|
||||
image_width (default=800) -- Specifies the width of the image in `px`.
|
||||
config (default=None) -- Plot view options dictionary. Keyword arguments
|
||||
`show_link` and `link_text` set the associated options in this
|
||||
dictionary if it doesn't contain them already.
|
||||
include_mathjax (False | 'cdn' | path - default=False) --
|
||||
Specifies how the MathJax.js library is included in the output html
|
||||
file or div string. MathJax is required in order to display labels
|
||||
with LaTeX typesetting.
|
||||
|
||||
If False, no script tag referencing MathJax.js will be included in the
|
||||
output. HTML files generated with this option will not be able to
|
||||
display LaTeX typesetting.
|
||||
|
||||
If 'cdn', a script tag that references a MathJax CDN location will be
|
||||
included in the output. HTML files generated with this option will be
|
||||
able to display LaTeX typesetting as long as they have internet access.
|
||||
|
||||
If a string that ends in '.js', a script tag is included that
|
||||
references the specified path. This approach can be used to point the
|
||||
resulting HTML file to an alternative CDN.
|
||||
auto_play (default=True) -- Whether to automatically start the animation
|
||||
sequence on page load if the figure contains frames. Has no effect if
|
||||
the figure does not contain frames.
|
||||
animation_opts (default=None) -- Dict of custom animation parameters that
|
||||
are used for the automatically started animation on page load. This
|
||||
dict is passed to the function Plotly.animate in Plotly.js. See
|
||||
https://github.com/plotly/plotly.js/blob/master/src/plots/animation_attributes.js
|
||||
for available options. Has no effect if the figure
|
||||
does not contain frames, or auto_play is False.
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import plot
|
||||
figure = {'data': [{'x': [0, 1], 'y': [0, 1]}],
|
||||
'layout': {'xaxis': {'range': [0, 5], 'autorange': False},
|
||||
'yaxis': {'range': [0, 5], 'autorange': False},
|
||||
'title': 'Start Title'},
|
||||
'frames': [{'data': [{'x': [1, 2], 'y': [1, 2]}]},
|
||||
{'data': [{'x': [1, 4], 'y': [1, 4]}]},
|
||||
{'data': [{'x': [3, 4], 'y': [3, 4]}],
|
||||
'layout': {'title': 'End Title'}}]}
|
||||
plot(figure, animation_opts={'frame': {'duration': 1}})
|
||||
```
|
||||
"""
|
||||
import plotly.io as pio
|
||||
|
||||
# Output type
|
||||
if output_type not in ["div", "file"]:
|
||||
raise ValueError(
|
||||
"`output_type` argument must be 'div' or 'file'. "
|
||||
"You supplied `" + output_type + "``"
|
||||
)
|
||||
if not filename.endswith(".html") and output_type == "file":
|
||||
warnings.warn(
|
||||
"Your filename `" + filename + "` didn't end with .html. "
|
||||
"Adding .html to the end of your file."
|
||||
)
|
||||
filename += ".html"
|
||||
|
||||
# Config
|
||||
config = dict(config) if config else {}
|
||||
config.setdefault("showLink", show_link)
|
||||
config.setdefault("linkText", link_text)
|
||||
|
||||
figure = tools.return_figure_from_figure_or_data(figure_or_data, validate)
|
||||
width = figure.get("layout", {}).get("width", "100%")
|
||||
height = figure.get("layout", {}).get("height", "100%")
|
||||
|
||||
if width == "100%" or height == "100%":
|
||||
config.setdefault("responsive", True)
|
||||
|
||||
# Handle image request
|
||||
post_script = build_save_image_post_script(
|
||||
image, image_filename, image_height, image_width, "plot"
|
||||
)
|
||||
|
||||
if output_type == "file":
|
||||
pio.write_html(
|
||||
figure,
|
||||
filename,
|
||||
config=config,
|
||||
auto_play=auto_play,
|
||||
include_plotlyjs=include_plotlyjs,
|
||||
include_mathjax=include_mathjax,
|
||||
post_script=post_script,
|
||||
full_html=True,
|
||||
validate=validate,
|
||||
animation_opts=animation_opts,
|
||||
auto_open=auto_open,
|
||||
)
|
||||
return filename
|
||||
else:
|
||||
return pio.to_html(
|
||||
figure,
|
||||
config=config,
|
||||
auto_play=auto_play,
|
||||
include_plotlyjs=include_plotlyjs,
|
||||
include_mathjax=include_mathjax,
|
||||
post_script=post_script,
|
||||
full_html=False,
|
||||
validate=validate,
|
||||
animation_opts=animation_opts,
|
||||
)
|
||||
|
||||
|
||||
def plot_mpl(
|
||||
mpl_fig,
|
||||
resize=False,
|
||||
strip_style=False,
|
||||
verbose=False,
|
||||
show_link=False,
|
||||
link_text="Export to plot.ly",
|
||||
validate=True,
|
||||
output_type="file",
|
||||
include_plotlyjs=True,
|
||||
filename="temp-plot.html",
|
||||
auto_open=True,
|
||||
image=None,
|
||||
image_filename="plot_image",
|
||||
image_height=600,
|
||||
image_width=800,
|
||||
):
|
||||
"""
|
||||
Convert a matplotlib figure to a Plotly graph stored locally as HTML.
|
||||
|
||||
For more information on converting matplotlib visualizations to plotly
|
||||
graphs, call help(plotly.tools.mpl_to_plotly)
|
||||
|
||||
For more information on creating plotly charts locally as an HTML document
|
||||
or string, call help(plotly.offline.plot)
|
||||
|
||||
mpl_fig -- a matplotlib figure object to convert to a plotly graph
|
||||
|
||||
Keyword arguments:
|
||||
resize (default=False) -- allow plotly to choose the figure size.
|
||||
strip_style (default=False) -- allow plotly to choose style options.
|
||||
verbose (default=False) -- print message.
|
||||
show_link (default=False) -- display a link in the bottom-right corner of
|
||||
of the chart that will export the chart to Plotly Cloud or
|
||||
Plotly Enterprise
|
||||
link_text (default='Export to plot.ly') -- the text of export link
|
||||
validate (default=True) -- validate that all of the keys in the figure
|
||||
are valid? omit if your version of plotly.js has become outdated
|
||||
with your version of graph_reference.json or if you need to include
|
||||
extra, unnecessary keys in your figure.
|
||||
output_type ('file' | 'div' - default 'file') -- if 'file', then
|
||||
the graph is saved as a standalone HTML file and `plot`
|
||||
returns None.
|
||||
If 'div', then `plot` returns a string that just contains the
|
||||
HTML <div> that contains the graph and the script to generate the
|
||||
graph.
|
||||
Use 'file' if you want to save and view a single graph at a time
|
||||
in a standalone HTML file.
|
||||
Use 'div' if you are embedding these graphs in an HTML file with
|
||||
other graphs or HTML markup, like a HTML report or an website.
|
||||
include_plotlyjs (default=True) -- If True, include the plotly.js
|
||||
source code in the output file or string.
|
||||
Set as False if your HTML file already contains a copy of the plotly.js
|
||||
library.
|
||||
filename (default='temp-plot.html') -- The local filename to save the
|
||||
outputted chart to. If the filename already exists, it will be
|
||||
overwritten. This argument only applies if `output_type` is 'file'.
|
||||
auto_open (default=True) -- If True, open the saved file in a
|
||||
web browser after saving.
|
||||
This argument only applies if `output_type` is 'file'.
|
||||
image (default=None |'png' |'jpeg' |'svg' |'webp') -- This parameter sets
|
||||
the format of the image to be downloaded, if we choose to download an
|
||||
image. This parameter has a default value of None indicating that no
|
||||
image should be downloaded.
|
||||
image_filename (default='plot_image') -- Sets the name of the file your
|
||||
image will be saved to. The extension should not be included.
|
||||
image_height (default=600) -- Specifies the height of the image in `px`.
|
||||
image_width (default=800) -- Specifies the width of the image in `px`.
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import init_notebook_mode, plot_mpl
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
init_notebook_mode()
|
||||
|
||||
fig = plt.figure()
|
||||
x = [10, 15, 20, 25, 30]
|
||||
y = [100, 250, 200, 150, 300]
|
||||
plt.plot(x, y, "o")
|
||||
|
||||
plot_mpl(fig)
|
||||
# If you want to to download an image of the figure as well
|
||||
plot_mpl(fig, image='png')
|
||||
```
|
||||
"""
|
||||
plotly_plot = plotly.tools.mpl_to_plotly(mpl_fig, resize, strip_style, verbose)
|
||||
return plot(
|
||||
plotly_plot,
|
||||
show_link,
|
||||
link_text,
|
||||
validate,
|
||||
output_type,
|
||||
include_plotlyjs,
|
||||
filename,
|
||||
auto_open,
|
||||
image=image,
|
||||
image_filename=image_filename,
|
||||
image_height=image_height,
|
||||
image_width=image_width,
|
||||
)
|
||||
|
||||
|
||||
def iplot_mpl(
|
||||
mpl_fig,
|
||||
resize=False,
|
||||
strip_style=False,
|
||||
verbose=False,
|
||||
show_link=False,
|
||||
link_text="Export to plot.ly",
|
||||
validate=True,
|
||||
image=None,
|
||||
image_filename="plot_image",
|
||||
image_height=600,
|
||||
image_width=800,
|
||||
):
|
||||
"""
|
||||
Convert a matplotlib figure to a plotly graph and plot inside an IPython
|
||||
notebook without connecting to an external server.
|
||||
|
||||
To save the chart to Plotly Cloud or Plotly Enterprise, use
|
||||
`plotly.plotly.plot_mpl`.
|
||||
|
||||
For more information on converting matplotlib visualizations to plotly
|
||||
graphs call `help(plotly.tools.mpl_to_plotly)`
|
||||
|
||||
For more information on plotting plotly charts offline in an Ipython
|
||||
notebook call `help(plotly.offline.iplot)`
|
||||
|
||||
mpl_fig -- a matplotlib.figure to convert to a plotly graph
|
||||
|
||||
Keyword arguments:
|
||||
resize (default=False) -- allow plotly to choose the figure size.
|
||||
strip_style (default=False) -- allow plotly to choose style options.
|
||||
verbose (default=False) -- print message.
|
||||
show_link (default=False) -- display a link in the bottom-right corner of
|
||||
of the chart that will export the chart to
|
||||
Plotly Cloud or Plotly Enterprise
|
||||
link_text (default='Export to plot.ly') -- the text of export link
|
||||
validate (default=True) -- validate that all of the keys in the figure
|
||||
are valid? omit if your version of plotly.js
|
||||
has become outdated with your version of
|
||||
graph_reference.json or if you need to include
|
||||
extra, unnecessary keys in your figure.
|
||||
image (default=None |'png' |'jpeg' |'svg' |'webp') -- This parameter sets
|
||||
the format of the image to be downloaded, if we choose to download an
|
||||
image. This parameter has a default value of None indicating that no
|
||||
image should be downloaded.
|
||||
image_filename (default='plot_image') -- Sets the name of the file your
|
||||
image will be saved to. The extension should not be included.
|
||||
image_height (default=600) -- Specifies the height of the image in `px`.
|
||||
image_width (default=800) -- Specifies the width of the image in `px`.
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import init_notebook_mode, iplot_mpl
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
fig = plt.figure()
|
||||
x = [10, 15, 20, 25, 30]
|
||||
y = [100, 250, 200, 150, 300]
|
||||
plt.plot(x, y, "o")
|
||||
|
||||
init_notebook_mode()
|
||||
iplot_mpl(fig)
|
||||
# and if you want to download an image of the figure as well
|
||||
iplot_mpl(fig, image='jpeg')
|
||||
```
|
||||
"""
|
||||
plotly_plot = plotly.tools.mpl_to_plotly(mpl_fig, resize, strip_style, verbose)
|
||||
return iplot(
|
||||
plotly_plot,
|
||||
show_link,
|
||||
link_text,
|
||||
validate,
|
||||
image=image,
|
||||
filename=image_filename,
|
||||
image_height=image_height,
|
||||
image_width=image_width,
|
||||
)
|
||||
|
||||
|
||||
def enable_mpl_offline(
|
||||
resize=False,
|
||||
strip_style=False,
|
||||
verbose=False,
|
||||
show_link=False,
|
||||
link_text="Export to plot.ly",
|
||||
validate=True,
|
||||
):
|
||||
"""
|
||||
Convert mpl plots to locally hosted HTML documents.
|
||||
|
||||
This function should be used with the inline matplotlib backend
|
||||
that ships with IPython that can be enabled with `%pylab inline`
|
||||
or `%matplotlib inline`. This works by adding an HTML formatter
|
||||
for Figure objects; the existing SVG/PNG formatters will remain
|
||||
enabled.
|
||||
|
||||
(idea taken from `mpld3._display.enable_notebook`)
|
||||
|
||||
Example:
|
||||
```
|
||||
from plotly.offline import enable_mpl_offline
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
enable_mpl_offline()
|
||||
|
||||
fig = plt.figure()
|
||||
x = [10, 15, 20, 25, 30]
|
||||
y = [100, 250, 200, 150, 300]
|
||||
plt.plot(x, y, "o")
|
||||
fig
|
||||
```
|
||||
"""
|
||||
init_notebook_mode()
|
||||
ipython = get_module("IPython")
|
||||
matplotlib = get_module("matplotlib")
|
||||
|
||||
ip = ipython.core.getipython.get_ipython()
|
||||
formatter = ip.display_formatter.formatters["text/html"]
|
||||
formatter.for_type(
|
||||
matplotlib.figure.Figure,
|
||||
lambda fig: iplot_mpl(
|
||||
fig, resize, strip_style, verbose, show_link, link_text, validate
|
||||
),
|
||||
)
|
Reference in New Issue
Block a user