tablas notebook python python-2.7 pandas matplotlib jupyter-notebook

notebook - subplot title python



Cómo mostrar Dataframe junto a Plot en Jupyter Notebook (1)

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

Sin embargo, no puedo hacer esto, y cada vez que imprimo el marco de datos, aparece debajo de mi trama ...

Aquí hay una pregunta similar, pero también estoy generando gráficos dentro de esta misma celda que quiero que estén orientados 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

Donde el recuadro rojo muestra dónde quiero que aparezca mi marco de datos. ¿Alguien tiene alguna idea sobre cómo hacer esto?

¡Gracias por tus pensamientos!


No estoy al tanto de cómo controlar la ubicación de donde se mostrará directamente el DataFrame, pero una solución que utilicé en el pasado es renderizar el DataFrame como una tabla matplotlib y luego debe comportarse como cualquier otro gráfico 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)