Using Pandas crosstab with seaborn stacked barplots

前端 未结 2 928
被撕碎了的回忆
被撕碎了的回忆 2020-12-15 14:08

I am trying to create a stacked barplot in seaborn with my dataframe.

I have first generated a crosstab table in pandas like so:

pd.crosstab(df[\'Pe         


        
2条回答
  •  执笔经年
    2020-12-15 14:36

    As you said you can use pandas to create the stacked bar plot. The argument that you want to have a "seaborn plot" is irrelevant, since every seaborn plot and every pandas plot are in the end simply matplotlib objects, as the plotting tools of both libraries are merely matplotlib wrappers.

    So here is a complete solution (taking the datacreation from @andrew_reece's answer).

    import numpy as np 
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    n = 500
    mark = np.random.choice([True,False], n)
    periods = np.random.choice(['BASELINE','WEEK 12', 'WEEK 24', 'WEEK 4'], n)
    
    df = pd.DataFrame({'mark':mark,'period':periods})
    ct = pd.crosstab(df.period, df.mark)
    
    ct.plot.bar(stacked=True)
    plt.legend(title='mark')
    
    plt.show()
    

提交回复
热议问题