Propiedades de matplotlib y subplots

Estoy agregando una figura de matplotlib a un canvas para poder integrarlo con pyqt en mi aplicación. plt.add_subplot(111) alrededor y el uso de plt.add_subplot(111) parece ser el camino a seguir (?) Pero no puedo agregar ninguna propiedad a la ttwig secundaria como puedo hacerlo con una ttwig “normal”

configuración de figura

 self.figure1 = plt.figure() self.canvas1 = FigureCanvas(self.figure1) self.graphtoolbar1 = NavigationToolbar(self.canvas1, frameGraph1) hboxlayout = qt.QVBoxLayout() hboxlayout.addWidget(self.graphtoolbar1) hboxlayout.addWidget(self.canvas1) frameGraph1.setLayout(hboxlayout) 

creando un argumento secundario y agregando datos

 df = self.quandl.getData(startDate, endDate, company) ax = self.figure1.add_subplot(111) ax.hold(False) ax.plot(df['Close'], 'b-') ax.legend(loc=0) ax.grid(True) 

Me gustaría establecer tags x e y, pero si hago ax.xlabel("Test")

 AttributeError: 'AxesSubplot' object has no attribute 'ylabel' 

lo cual es posible si lo hiciera al no usar subplot

 plt.figure(figsize=(7, 4)) plt.plot(df['Close'], 'k-') plt.grid(True) plt.legend(loc=0) plt.xlabel('value') plt.ylabel('frequency') plt.title('Histogram') locs, labels = plt.xticks() plt.setp(labels, rotation=25) plt.show() 

Así que supongo que mi pregunta es, ¿no es posible modificar las subplots más? ¿O es posible para mí trazar gráficos en un canvas de pyqt, sin usar subplots para poder beneficiarme de más propiedades para mis plots?

plt.subplot devuelve un objeto de plt.subplot que es un tipo de objeto de ejes. Tiene dos métodos para agregar tags de eje: set_xlabel y set_ylabel :

 ax = plt.subplot('111') ax.set_xlabel('X Axis') ax.set_ylabel('Y Axis') 

También puede llamar a plt.xlabel y plt.ylabel (como hizo antes) y especificar los ejes a los que desea aplicar la etiqueta.

 ax = plt.subplot('111') plt.xlabel('X Axis', axes=ax) plt.ylabel('Y Axis', axes=ax) 

Como solo tiene un eje, también puede omitir los axes kwarg, ya que la etiqueta se aplicará automáticamente a los ejes actuales si no se especifica uno.

 ax = plt.subplot('111') plt.xlabel('X Axis') plt.ylabel('Y Axis')