Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotly Ipython - display(HTML) function is not displaying html file

I am creating images using plotly library and trying to display in HTML. I have format the images in HTML format. But display(HTML(report_html)) code is not displaying HTML page.

I am using python 3.5 and pycharm IDE. I am not using iPython notebook.

Source code:

 from IPython.display import display, HTML, Image
 import plotly.plotly as py
 from plotly.offline import init_notebook_mode
 init_notebook_mode()

 data = go.scatter(x=df['date'], y=i, name = long_name['value'])
 figures = [data]
 images = [base64.b64encode(py.image.get(figure, width=width,height=height)).decode('utf-8') for figure in figures]

  report_html = ''
  for image in images:
      _ = template
      _ = _.format(image=image, caption='', width=width, height=height)
      report_html += _

  display(HTML(report_html))

I am not getting any error. I am just getting following output

IPython.core.display.HTML object

like image 982
Arvinth Kumar Avatar asked Oct 29 '22 03:10

Arvinth Kumar


1 Answers

Sorry for the late reply, The code works perfectly for me, let me share my sample,the basic difference is I used the figure object under plotly.graph_objs instead of figures = [data]

Code:

from IPython.display import display, HTML, Image
import plotly.plotly as py
import base64
import plotly.graph_objs as go
py.sign_in('<<username here>>', '<<api key here>>')

# required variables
width=500
height=300

# template not provided so created my own
template = """
<div class="row">
    <div class="col-xs-12" style="text-align:center">
        {caption}
    </div>
    <div class="col-xs-12">
        <img src="data:image/png;base64,  {image}" alt="Red dot"/>
    </div>
</div>
"""

# data = go.scatter(x=df['date'], y=i, name = long_name['value'])

# using my sample data instead
trace = go.Bar(x=[2, 4, 6], y= [10, 12, 15])

# layout can also be provided, I am giving as blank
layout = dict()

# figures = [data]
# changing the above commented line to plotly figure object
fig = go.Figure(data=[trace], layout=layout)

# defining list which will contain all the plot objects
figures = []
figures.append(fig)

images = [base64.b64encode(py.image.get(figure, width=width,height=height)).decode('utf-8') for figure in figures]

report_html = ''
for image in images:
    _ = template
    _ = _.format(image=image, caption='', width=width, height=height)
    report_html += _

display(HTML(report_html))
like image 129
Naren Murali Avatar answered Nov 15 '22 07:11

Naren Murali