Reputation: 11
I have the following data for dataframe:
data = [{'City': 'SF', 'Tools':'Subways', 'Numbers':10}, {'City': 'SF', 'Tools':'Foot', 'Numbers':4}, {'City': 'SF', 'Tools':'Bike', 'Numbers':8}, {'City': 'SF', 'Tools':'Skateboard', 'Numbers':2}, {'City': 'SF', 'Tools':'Ferry', 'Numbers':3}, {'City': 'Seattle', 'Tools':'Car', 'Numbers':15}, {'City': 'Seattle', 'Tools':'Train', 'Numbers':5}, {'City': 'Seattle', 'Tools':'Ferry', 'Numbers':9}, {'City': 'Seattle', 'Tools':'Bike', 'Numbers':9}, {'City': 'Boston', 'Tools':'Subway', 'Numbers':10}, {'City': 'Boston', 'Tools':'Car', 'Numbers':10}, {'City': 'Shanghai', 'Tools':'Car', 'Numbers':4}, {'City': 'Shanghai', 'Tools':'Subway', 'Numbers':20}]
df = pd.DataFrame(data)
I would like to plot it like the following
Upvotes: 0
Views: 98
Reputation: 150745
You can pivot the table and plot:
ax = df.pivot(index='City', columns='Tools',
values='Numbers').plot.bar(stacked=True)
ax.set_ylabel('Numbers')
plt.show()
Output:
Upvotes: 2