Four Types of Bar Charts in Python — Based on Array Data

Luca Liu
3 min readMar 10, 2024

Simple bar chart based on an array in Python

import matplotlib.pyplot as plt
import numpy as np

x = np.array(['A', 'B', 'C', 'D', 'E'])
y = np.array([50, 30, 70, 80, 60])
plt.bar(x, y, align='center', width=0.5, color='b', label='data')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Bar chart')
plt.legend()
plt.show()

Stacked bar chart based on arrays in Python

import matplotlib.pyplot as plt
import numpy as np
x = np.array(['A', 'B', 'C', 'D', 'E'])
y1 = np.array([50, 30, 70, 80, 60])
y2 = np.array([20, 40, 10, 50, 30])

plt.bar(x, y1, align='center', width=0.5, color='b', label='Series 1')
plt.bar(x, y2, bottom=y1, align='center', width=0.5, color='g', label='Series 2')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Stacked Bar Chart')
plt.legend()
plt.show()

Grouped bar chart based on arrays in Python

import matplotlib.pyplot as plt
import numpy as np

# Prepare the data
N = 5
men_means = (20, 35, 30, 35, 27)
women_means = (25, 32, 34, 20, 25)
ind = np.arange(N) # x-axis position
width = 0.35 # width of each bar
# Plot the bar chart
fig, ax = plt.subplots()
rects1 = ax.bar(ind, men_means, width, color='r')
rects2 = ax.bar(ind + width, women_means, width, color='y')
# Add labels, legend, and axis labels
ax.set_xticks(ind + width / 2)
ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))
ax.legend((rects1[0], rects2[0]), ('Men', 'Women'))
ax.set_xlabel('Groups')
ax.set_ylabel('Scores')
# Display the plot
plt.show()

Percent stacked bar chart based on arrays in Python

import matplotlib.pyplot as plt
import numpy as np

# Prepare the data
x = ['Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5']
y = np.array([[10, 20, 30],
[20, 25, 30],
[15, 30, 25],
[25, 15, 20],
[30, 20, 10]])
# calculate percentage
y_percent = y / np.sum(y, axis=1, keepdims=True) * 100
# Plot the chart
fig, ax = plt.subplots()
ax.bar(x, y_percent[:, 0], label='Series 1', color='r')
ax.bar(x, y_percent[:, 1], bottom=y_percent[:, 0], label='Series 2', color='g')
ax.bar(x, y_percent[:, 2], bottom=y_percent[:, 0] + y_percent[:, 1], label='Series 3', color='b')
# Display the plot
plt.show()

Thank you for taking the time to explore data-related insights with me. I appreciate your engagement. If you find this information helpful, I invite you to follow me or connect with me on LinkedIn or X(@Luca_DataTeam). You can also catch glimpses of my personal life on Instagram, Happy exploring!👋

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Luca Liu
Luca Liu

Written by Luca Liu

Hello there! 👋 I'm Luca, a Business Intelligence Developer with passion for all things data. Proficient in Python, SQL, Power BI, Tableau, SAP BO.

No responses yet

Write a response