Cómo mostrar el dataframe al lado de Trazar en Jupyter Notebook

Entiendo cómo mostrar dos gráficos uno al lado del otro (horizontalmente) en Jupyter Notebook, pero no sé si hay una manera de mostrar un gráfico con un dataframe al lado. Me imagino que podría verse algo como esto:

introduzca la descripción de la imagen aquí

Sin embargo, no puedo hacer esto, y cada vez que imprimo el dataframe, aparece debajo de mi ttwig …

Aquí hay una pregunta similar, pero también estoy generando gráficos dentro de esta misma celda en la que quiero orientarme verticalmente.

Actualmente tengo esto:

# line plots df_plot[['DGO %chg','DLM %chg']].plot(figsize=(15,5),grid=True) plt.ylim((-ylim,ylim)) df_plot[['Diff']].plot(kind='area',color='lightgrey',figsize=(15,1)) plt.xticks([]) plt.xlabel('') plt.ylim((0,ylim_diff)) plt.show() # scatter plots plt.scatter(x=df_scat[:-7]['DGO'],y=df_scat[:-7]['DLM']) plt.scatter(x=df_scat[-7:]['DGO'],y=df_scat[-7:]['DLM'],color='red') plt.title('%s Cluster Last 7 Days'%asset) plt.show() # display dataframe # display(df_scat[['DGO','DLM']][:10]) <-- prints underneath, not working 

introduzca la descripción de la imagen aquí

Donde la casilla roja muestra donde quiero que aparezca mi dataframe. ¿Alguien tiene alguna idea sobre cómo hacer esto?

Gracias por tus pensamientos!

No sé cómo controlar la ubicación donde se mostrará el DataFrame directamente, pero una solución alternativa que he usado en el pasado es representar el DataFrame como una tabla de matplotlib y luego debería comportarse como cualquier otro gráfico de matplotlib. Puedes usar:

 import matplotlib.pyplot as plt from matplotlib import six import pandas as pd import numpy as np df = pd.DataFrame() df['x'] = np.arange(0,11) df['y'] = df['x']*2 fig = plt.figure(figsize=(8,5)) ax1 = fig.add_subplot(121) ax1.scatter(x=df['x'],y=df['y']) ax2 = fig.add_subplot(122) font_size=14 bbox=[0, 0, 1, 1] ax2.axis('off') mpl_table = ax2.table(cellText = df.values, rowLabels = df.index, bbox=bbox, colLabels=df.columns) mpl_table.auto_set_font_size(False) mpl_table.set_fontsize(font_size) 

introduzca la descripción de la imagen aquí

Otra posibilidad es usar el html para ordenar cosas, siguiendo https://stackoverflow.com/a/44923103/4908900 .

Aquí hay un ejemplo práctico, (probablemente hay formas más elegantes de hacerlo):

 prefix = \ """       

title

""" suffix = \ """
Graph
""" df = pd.DataFrame(np.arange(36).reshape((6,6)),columns=['A','B','C','D','E','F']) ax = df.plot(lw=4) title = "mock data" fig = ax.get_figure() fig.savefig(title+".png") html = prefix.replace('title', title)+df.to_html()+suffix.replace('https://stackoverflow.com/questions/45286696/how-to-display-dataframe-next-to-plot-in-jupyter-notebook/pic_file.png', title+".png") display_html(html, raw=True)

introduzca la descripción de la imagen aquí