Skip to content

Commit 1d6deba

Browse files
author
Onur R. Bingol
committed
Add jupyter and renderer support for VisPlotly
1 parent 4809297 commit 1d6deba

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

geomdl/visualization/VisPlotly.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
88
"""
99

10+
import sys
1011
from . import vis
1112
import numpy as np
1213
from plotly import graph_objs
@@ -60,6 +61,7 @@ def __init__(self, **kwargs):
6061
self.dtype = np.float
6162
# Set Plotly custom variables
6263
self.figure_image_filename = "temp-plot.html"
64+
self.use_renderer = kwargs.get("use_renderer", False)
6365

6466
# Get keyword arguments
6567
self.display_ctrlpts = kwargs.get('ctrlpts', True)
@@ -73,6 +75,10 @@ def __init__(self, **kwargs):
7375
self.trim_size = kwargs.get('trim_size', 1)
7476
self.line_width = kwargs.get('line_width', 2)
7577

78+
# https://stackoverflow.com/a/37661854/3345747
79+
def in_notebook(self):
80+
return 'ipykernel' in sys.modules
81+
7682

7783
class VisCurve2D(vis.VisAbstract):
7884
""" Plotly visualization module for 2D curves. """
@@ -178,7 +184,9 @@ def render(self, **kwargs):
178184
fig_display = kwargs.get('display_plot', True)
179185

180186
# Display the plot
181-
if fig_display:
187+
if self.vconf.in_notebook() or self.vconf.use_renderer:
188+
fig.show()
189+
elif fig_display:
182190
fig.write_html(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
183191
else:
184192
fig.write_image(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
@@ -315,7 +323,9 @@ def render(self, **kwargs):
315323
fig_display = kwargs.get('display_plot', True)
316324

317325
# Display the plot
318-
if fig_display:
326+
if self.vconf.in_notebook() or self.vconf.use_renderer:
327+
fig.show()
328+
elif fig_display:
319329
fig.write_html(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
320330
else:
321331
fig.write_image(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
@@ -473,7 +483,9 @@ def render(self, **kwargs):
473483
fig_display = kwargs.get('display_plot', True)
474484

475485
# Display the plot
476-
if fig_display:
486+
if self.vconf.in_notebook() or self.vconf.use_renderer:
487+
fig.show()
488+
elif fig_display:
477489
fig.write_html(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
478490
else:
479491
fig.write_image(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
@@ -602,7 +614,9 @@ def render(self, **kwargs):
602614
fig_display = kwargs.get('display_plot', True)
603615

604616
# Display the plot
605-
if fig_display:
617+
if self.vconf.in_notebook() or self.vconf.use_renderer:
618+
fig.show()
619+
elif fig_display:
606620
fig.write_html(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)
607621
else:
608622
fig.write_image(file=self.vconf.figure_image_filename if fig_filename is None else fig_filename)

0 commit comments

Comments
 (0)