The idea of stack plots is to show “parts to a whole” over time; basically, it’s like a pie-chart, only over time. Stack plots are mainly used to see various trends in variables over a specific period of time.
Matplotlib has a built-in function to create stack plots called
Take a look at the syntax below:
matplotlib.pyplot.stackplot(x, y1, y2, ..., yn, c=None, ...)
yn are the data points on the x and y-axis respectively. The function also has several other optional parameters such as color, area, alpha values, etc.
See the example below which portrays the 5-day routine of a person on a stack plot. Routine activities include
exercise. Click run to see the graph.
import matplotlib.pyplot as plt days = [1,2,3,4,5] sleep = [6,7,5,8,6] eat = [2,2,1,2,1] work = [5,7,10,8,6] exercise= [3,3,0,1,3] plt.plot(,,color='green', label='sleep', linewidth=3) plt.plot(,,color='blue', label='eat', linewidth=3) plt.plot(,,color='red', label='work', linewidth=3) plt.plot(,,color='black', label='play', linewidth=3) plt.stackplot(days, sleep, eat, work, exercise, colors=['green','blue','red','black']) plt.xlabel('days') plt.ylabel('activities') plt.title('5 DAY ROUTINE') plt.legend() plt.show()
The first thing you do is import
matplotlib (line 1)
Then, you create a variable,
days, which will represent our x-axis data (line 3)
Next, you create the variables
exercise with values that correspond to the
days values (line 5 - 8)
You can use the
plt.plot() function, where you specify the color and the label for each constituent, to add legend data (line 11 - 14)
Then, you have the line
plt.stackplot(days, sleep, eat, work, exercise, colors=['green','blue','red','black']) with the
days variable as the x-axis. Next, the
exercise variables are plotted as y-axis data in the order specified. The colors are matched in a corresponding order for the y-values. (line 16)
Then, you can add the legend, title, x-label, and y-label. (line 18 - 21)
Finally, we show the plot (line 22)
View all Courses