Lihong Herman
Lihong Herman

Reputation: 11

Bar chart Plot a dataframe with three columns

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

bar chart with different categories

Upvotes: 0

Views: 98

Answers (1)

Quang Hoang
Quang Hoang

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:

enter image description here

Upvotes: 2

Related Questions