Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2014, 06:51
edanvar
 
Fecha de Ingreso: octubre-2013
Mensajes: 59
Antigüedad: 11 años
Puntos: 0
Devolver figura desde metodo

Hola, como hago para, desde un metodo, devolver una figura sin que se muestre en forma de pop-up, me explico:


En un determinado metodo estoy generando una figura asi:

Código Python:
Ver original
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. def drawPlot(x,y, y_O):
  5.  
  6.     n_groups = len(x)
  7.     fig, ax = plt.subplots()
  8.     index = np.arange(n_groups)
  9.     bar_width = 0.35
  10.     opacity = 0.4
  11.     error_config = {'ecolor': '0.3'}
  12.     rects1 = plt.bar(x, y, bar_width, alpha=opacity, color='b',label='label1')
  13.  
  14.     for i in range(len(x)):
  15.         x[i] = x[i] + bar_width
  16.  
  17.     rects2 = plt.bar(x , y_O, bar_width, alpha=opacity, color='r',label='label2')
  18.  
  19.     plt.xlabel('Reading')
  20.     plt.ylabel('Value (%)')
  21.  
  22.     plt.xticks(index + bar_width , (x))
  23.     plt.legend()
  24.  
  25.     plt.tight_layout()
  26.  
  27.     return fig

El problema que tengo es que, cuando desde el codigo de la mainWindow hago esto:

Código Python:
Ver original
  1. thePlot = tm.drawPlot(x,y,y_O, y_L)
  2. MyCanvas = FigureCanvas(thePlot)
  3. navi_toolbar = NavigationToolbar(MyCanvas, self)
  4.                    
  5. self.ui.verticalLayoutGraph2_1.addWidget(navi_toolbar)
  6. self.ui.verticalLayoutGraph2_1.addWidget(MyCanvas)

Todo funciona bien, la grafica se muestra dentro de la mainWindow, pero ademas me sale una ventana pop-up con la misma grafica.

Me gustaria saber como evitar que salga esa ventana con la grafica, ya que yo solo la quiero en la mainWindow.

Como se puede ver, en el metodo no hay niguna llamada del tipo .show() o .draw() por lo que no entiendo por que sale esa ventana pop-up con la figura.