How to display Dataframe next to Plot in Jupyter laptop

I understand how to display two graphs next to each other (horizontally) in a Jupyter Notebook, but I donโ€™t know if there is a way to display a graph with a row of data with it. I assume this might look something like this:

enter image description here

However, I cannot do this, and whenever I print a data frame, it appears below my plot ...

There is a similar question here, but I also draw graphs inside the same cell that I want to be vertically oriented.

I currently have this:

# 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 

enter image description here

In those cases where the red frame shows where I want the data core to be displayed. Does anyone have any ideas on how to do this?

Thanks for your thoughts!

+8
python matplotlib pandas jupyter-notebook
source share
1 answer

I donโ€™t know how to control the location where the DataFrame will be displayed - but one work that I have used in the past is to render the DataFrame as a matplotlib table and then it should behave like any other matplotlib plot. You can use:

 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) 

enter image description here

+7
source share

All Articles