python数据可视化技巧的100个练习 -- 7. 季度销售堆叠柱状图
你是一家零售公司的数据分析师。你的经理要求你创建一个堆叠柱状图,以可视化 2023 年三种不同产品(产品 A、产品 B 和产品 C)的季度销售情况。数据应在代码中生成。你的任务是编写一个 Python 脚本,生成这些数据,并创建一个堆叠柱状图来显示它。【数据生成代码示例】
import pandas as pdimport numpy as npquarters = ['Q1', 'Q2', 'Q3', 'Q4']products = ['Product A', 'Product B', 'Product C']data = {product: np.random.randint(1000, 5000, size=4) for product in products}data['Quarter'] = quartersdf = pd.DataFrame(data)
【图表答案】
【代码答案】
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltquarters = ['Q1', 'Q2', 'Q3', 'Q4']products = ['Product A', 'Product B', 'Product C']data = {product: np.random.randint(1000, 5000, size=4) for product in products}data['Quarter'] = quartersdf = pd.DataFrame(data)fig, ax = plt.subplots()ax.bar(df['Quarter'], df['Product A'], label='Product A')ax.bar(df['Quarter'], df['Product B'], bottom=df['Product A'], label='Product B')ax.bar(df['Quarter'], df['Product C'], bottom=df['Product A']+df['Product B'], label='Product C')ax.set_xlabel('Quarters')ax.set_ylabel('Sales Amount')ax.set_title('2023 年各季度产品销售额')ax.legend()plt.show()
我们使用 numpy 库为四个季度的三种产品创建随机销售数据。数据存储在一个字典中,然后转换为 pandas DataFrame,便于操作。接下来,我们使用 matplotlib 库创建堆叠柱状图。我们使用 plt.subplots() 初始化一个图形和坐标轴。然后,我们使用 ax.bar() 函数绘制每种产品的销售数据。例如,产品 B 的销售额堆叠在产品 A 之上,产品 C 堆叠在二者之上。我们设置 x 轴和 y 轴的标签,并为图表添加标题。最后,我们添加图例以区分不同产品,并使用 plt.show() 显示图表。【小知识】
- 堆叠柱状图适用于比较不同类别之间的总值,以及各自对总值的贡献。
- pandas 库广泛用于 Python 中的数据操作和分析,是准备可视化数据的强大工具。
- matplotlib 是 Python 中最受欢迎的绘图库之一,以其灵活性和丰富的自定义选项而闻名。