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
In order to plot a histogram using pandas, chain the . hist() function to the dataframe. This will return the histogram for each numeric column in the pandas dataframe.
To create a histogram the first step is to create bin of the ranges, then distribute the whole range of the values into a series of intervals, and count the values which fall into each of the intervals. Bins are clearly identified as consecutive, non-overlapping intervals of variables. The matplotlib. pyplot.
The method in that post should work:
plt.hist([df1['text'],df2['printed']],
bins=100, range=(1,100), stacked=True, color = ['r','g'])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With