18

I am trying to create a stacked histogram with data from 2 or more uneven pandas dataframes? So far I can get them to graph on top of each other but not stack.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('dert.csv', encoding = "ISO-8859-1", index_col=0)

df1['text'] = df['text'].dropna(subset=['five'])
df2['printed'] = df['text2']
ax = df1['text'].hist( bins=100, range=(1,100), stacked=True, color = 'r')
ax = df2['printed'].hist(bins=100, range=(1,100), stacked=True, color = 'g')

plt.setp(ax.get_xticklabels(),  rotation=45)
plt.show()

How do I get them to stack?

I found a solution but it does not use pandas dataframes Matplotlib, creating stacked histogram from three unequal length arrays

1
  • Have you tried using the same method as that link you posted? Using regular matplotlib, just passing the DataFrame columns you want to plot, should work. At most, you can create a list of each column's values. Commented Jul 6, 2014 at 9:44

1 Answer 1

28

The method in that post should work:

plt.hist([df1['text'],df2['printed']],
          bins=100, range=(1,100), stacked=True, color = ['r','g'])
Sign up to request clarification or add additional context in comments.

1 Comment

Be sure to remove nan's before using this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.