Reputation: 81
I am trying to create a grouped barchart with this data on plotly, but that argument gets ignored each time and plotly creates a relative barchart instead. I tried changing the column, index, and value datatypes to no avail.
My code is below:
data='''
Brand 2018 2019 2020 2021
Hersheys 100 200 212 314
MilkyWay 105 106 214 178
Reeses 84 82 95 112
Payday 278 552 214 292
'''
brand = pd.read_csv(StringIO(data), sep='\s+')
brand=pd.melt(brand,id_vars=['Brand'],value_vars=brand.columns)
brand=brand.rename(columns={'variable':'Year'})
agg_brand=brand[['value','Year']].groupby('Year').agg('sum').reset_index()
agg_brand.columns=['Year','value_sum']
brand=pd.merge(brand,agg_brand,on='Year',how='left')
brand['percent']=(brand['value']/brand['value_sum']*100).round(1).astype(str)+"%"
fig=px.bar(brand,x='Year',y='value',barmode='group')
fig.show()
I found this link, but I have no clue how to apply it. I am lost (and I also have to make these charts by tomorrow) and any help is appreciated. Thanks
Upvotes: 0
Views: 1509
Reputation: 79921
You need to specify the color
argument as well, and then you'll get the side-by-side bars.
fig=px.bar(brand,x='Year',y='value', barmode='group', color='Brand')
fig.show()
I tried this with your dataframe at various points in the creation and I might have done something wrong, but there's nothing to indicate that it should need color
specified, even from reading the plotly
code.
Upvotes: 1