Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

How to plot table from pandas dataframe

+2
−0

MWE

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


df = pd.DataFrame(np.random.rand(9, 4), columns=['a', 'b', 'c', 'd'])
df.plot.bar(table=True) # don't want plot, just want table
# df.plot.table() # what I would hope
plt.show()

Busy Bar with Table

Question

How do I generate a table in its own figure from a pandas dataframe?

Notes

Notice the table appended to the graph above is hardly legible and gets cut off. I am not looking to fix legibility as is though, I need a separate figure for use in a paper.

I do not want to have to mess with generating matplotlib axes objects like for pandas.plotting.table() or in this example.

I want to be able to create the table just using and providing the df, as opposed to manually formatting the data into a latex table.

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Do you really want a matplotlib table? Generating a latex table shouldn't require much manual formatt... (5 comments)

1 answer

+3
−0

If you want a table for including in a latex document, then DataFrame.to_latex should be the best way.

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(9, 4), columns=['a', 'b', 'c', 'd'])
print(df.to_latex())

Output:

\begin{tabular}{lrrrr}
\toprule
{} &         a &         b &         c &         d \\
\midrule
0 &  0.883901 &  0.910674 &  0.306624 &  0.470303 \\
1 &  0.922612 &  0.219801 &  0.611842 &  0.743910 \\
2 &  0.996779 &  0.379242 &  0.674361 &  0.782147 \\
3 &  0.765185 &  0.011737 &  0.884637 &  0.162817 \\
4 &  0.845882 &  0.916658 &  0.244468 &  0.497107 \\
5 &  0.304585 &  0.047682 &  0.180011 &  0.399425 \\
6 &  0.720945 &  0.906463 &  0.845129 &  0.151063 \\
7 &  0.998912 &  0.631897 &  0.504105 &  0.633605 \\
8 &  0.523401 &  0.322309 &  0.507168 &  0.843320 \\
\bottomrule
\end{tabular}
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comment threads

Sign up to answer this question »