如何在 matplotlib 中创建堆积条形图(附示例)
堆积条形图是一种使用条形来显示不同类别的频率的图表。
我们可以使用matplotlib.pyplot.bar()函数在 Matplotlib 中创建这种类型的图表。
本教程展示了如何在实践中使用此功能。
创建基本的堆积条形图
以下代码展示了如何创建堆积条形图来显示两种产品在四个不同销售季度的总销售额:
import numpy as np import matplotlib.pyplot as plt #createdata quarter = ['Q1', 'Q2', 'Q3', 'Q4'] product_A = [14, 17, 12, 9] product_B = [7, 15, 24, 18] #define chart parameters N = 4 barWidth = .5 xloc = np. orange (N) #display stacked bar chart p1 = plt. bar (xloc, product_A, width=barWidth) p2 = plt. bar (xloc, product_B, bottom=product_A, width=barWidth) plt. show ()
添加标题、标签和说明文字
我们还可以添加标题、标签、刻度线和图例,以使图表更易于阅读:
import numpy as np import matplotlib.pyplot as plt #create data for two teams quarter = ['Q1', 'Q2', 'Q3', 'Q4'] product_A = [14, 17, 12, 9] product_B = [7, 15, 24, 18] #define chart parameters N = 4 barWidth = .5 xloc = np. orange (N) #create stacked bar chart p1 = plt. bar (xloc, product_A, width=barWidth) p2 = plt. bar (xloc, product_B, bottom=product_A, width=barWidth) #add labels, title, tick marks, and legend plt. ylabel ('Sales') plt. xlabel ('Quarter') plt. title ('Sales by Product & Quarter') plt. xticks (xloc, ('Q1', 'Q2', 'Q3', 'Q4')) plt. yticks (np. arange (0, 41, 5)) plt. legend ((p1[0], p2[0]), ('A', 'B')) #displaychart plt. show ()
自定义图表颜色
最后,我们可以使用plt.bar()中的color()参数自定义图表中使用的颜色:
import numpy as np import matplotlib.pyplot as plt #create data for two teams quarter = ['Q1', 'Q2', 'Q3', 'Q4'] product_A = [14, 17, 12, 9] product_B = [7, 15, 24, 18] #define chart parameters N = 4 barWidth = .5 xloc = np. orange (N) #create stacked bar chart p1 = plt. bar (xloc, product_A, width=barWidth, color=' springgreen ') p2 = plt. bar (xloc, product_B, bottom=product_A, width=barWidth, color=' coral ') #add labels, title, tick marks, and legend plt. ylabel ('Sales') plt. xlabel ('Quarter') plt. title ('Sales by Product & Quarter') plt. xticks (xloc, ('Q1', 'Q2', 'Q3', 'Q4')) plt. yticks (np. arange (0, 41, 5)) plt. legend ((p1[0], p2[0]), ('A', 'B')) #displaychart plt. show ()
您可以在 Matplotlib 文档中找到可用颜色的完整列表。
其他资源
以下教程解释了如何在 Matplotlib 中执行其他常见任务:
如何更改 Matplotlib 绘图上的字体大小
如何从 Matplotlib 图中删除刻度
如何在 Matplotlib 绘图上显示网格线