title: Can I embed plotly graphs (offline) in my PyQt4 application?
body: <p>I know that plotly renders into HTML and can be embedded in web-like environments. I wonder if one can do that inside an HTML window in a PyQt application? Specifically I'd like to know if that works offline, having no internet connection.</p>
  
  <p>EDIT:</p>
  
  <p>This is an excerpt how I finally embedded graphs using matplotlib:</p>
  
  <pre><code>from PyQt4 import QtGui
  
  from matplotlib.backends.backend_qt4agg \
      import FigureCanvasQTAgg as FigureCanvas
  from matplotlib.backends.backend_qt4agg \
      import NavigationToolbar2QT as NavigationToolbar
  import matplotlib.pyplot as plt
  
  
  class Contour(QtGui.QFrame):
  
      def __init__(self, parent=None):
          super(Contour, self).__init__(parent)
  
          self.parent = parent
  
          # a figure instance to plot on
          self.figure = plt.figure(figsize=(20, 30))
          r, g, b = 100./255., 100./255., 100./255.
          self.figure.patch.set_facecolor(color=(r, g, b))
  
          # this is the Canvas Widget that displays the `figure`
          # it takes the `figure` instance as a parameter to __init__
          self.canvas = FigureCanvas(self.figure)
  
          # this is the Navigation widget
          # it takes the Canvas widget and a parent
          self.toolbar = NavigationToolbar(self.canvas, self)
  
          # set the layout
          layout = QtGui.QVBoxLayout()
          layout.addWidget(self.toolbar)
          layout.addWidget(self.canvas)
          self.setLayout(layout)
  </code></pre>
  
  <p>And then in another function:</p>
  
  <pre><code>    # create an axis
      ax1 = self.figure.add_subplot(211, frame_on=False)
      ax2 = self.figure.add_subplot(212, frame_on=False)
  
      # plot data
      r, g, b = 39./255., 40./255., 34./255.
      ax1.plot(x, y, ls='o', color=(r, g, b), linewidth=3)
      ax1.plot(coo[0], coo[1], 'go', zorder=20)  # leading edge
      ax1.plot(xg, yg, 'mo', zorder=30)  # leading edge
      ax1.plot(xr, yr, 'yo', zorder=30)  # curvature circle center
      ax1.add_patch(circle)
      ax1.set_title('Contour', fontsize=14)
      ax1.set_xlim(-10.0, 110.0)
      # ax1.set_ylim(-10.0, 14.0)
      r, g, b = 249./255., 38./255., 114./255.
      ax1.fill(x, y, color=(r, g, b))
      ax1.set_aspect('equal')
  
      ax2.plot(coo[0], gradient, 'go-', linewidth=3)
      ax2.set_title('Gradient', fontsize=14)
      ax2.set_xlim(-10.0, 110.0)
  </code></pre>