¿Cómo trazo solo una tabla en Matplotlib?

¿Es posible dibujar solo una mesa con matplotlib? Si descomento la linea

plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row]) 

De este código de ejemplo, la ttwig todavía es visible. Quiero tener una tabla en la parte superior de mi ventana (PyQt) y debajo de una plot (con un espacio entre ellas).

Si solo desea cambiar el ejemplo y colocar la tabla en la parte superior, entonces loc='top' en la statement de la tabla es lo que necesita,

 the_table = ax.table(cellText=cell_text, rowLabels=rows, rowColours=colors, colLabels=columns, loc='top') 

Luego ajustando la ttwig con,

 plt.subplots_adjust(left=0.2, top=0.8) 

Una opción más flexible es colocar la tabla en su propio eje usando subplots,

 import numpy as np import matplotlib.pyplot as plt fig, axs =plt.subplots(2,1) clust_data = np.random.random((10,3)) collabel=("col 1", "col 2", "col 3") axs[0].axis('tight') axs[0].axis('off') the_table = axs[0].table(cellText=clust_data,colLabels=collabel,loc='center') axs[1].plot(clust_data[:,0],clust_data[:,1]) plt.show() 

que se parece a esto,

introduzca la descripción de la imagen aquí

A continuación, podrá ajustar la ubicación del eje según sea necesario .

Esta es otra opción para escribir un dataframe de pandas directamente en una tabla matplotlib:

 import numpy as np import pandas as pd import matplotlib.pyplot as plt fig, ax = plt.subplots() # hide axes fig.patch.set_visible(False) ax.axis('off') ax.axis('tight') df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD')) ax.table(cellText=df.values, colLabels=df.columns, loc='center') fig.tight_layout() plt.show() 

introduzca la descripción de la imagen aquí

No estoy seguro de si esto ya está respondido, pero si solo desea una tabla en una ventana de figura, puede ocultar los ejes:

 fig, ax = plt.subplots() # Hide axes ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) # Table from Ed Smith answer clust_data = np.random.random((10,3)) collabel=("col 1", "col 2", "col 3") ax.table(cellText=clust_data,colLabels=collabel,loc='center') 

Puedes di esto:

 #axs[1].plot(clust_data[:,0],clust_data[:,1]) # Remove this if you don't need it axs[1].axis("off") # This will leave the table alone in the window