python数据可视化技巧的100个练习 -- 56. 创建分类数据的条形图
一家零售商店希望可视化不同产品类别的销售分布,以识别最受欢迎的类别。你的任务是创建一个条形图,显示每个产品类别的总销售额。数据包含两列:“Category”(类别)和“Sales”(销售额)。“Category”列包含产品类别,“Sales”列包含每笔交易的销售金额。【数据生成代码示例】
import pandas as pdimport numpy as np# 生成样本数据categories = ['Electronics', 'Clothing', 'Groceries', 'Home & Garden', 'Sports', 'Toys']np.random.seed(0) # 为了可重复性data = pd.DataFrame({ 'Category': np.random.choice(categories, 100), 'Sales': np.random.randint(10, 1000, 100)})data.head()
【图表答案】
【代码答案】
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 生成样本数据categories = ['Electronics', 'Clothing', 'Groceries', 'Home & Garden', 'Sports', 'Toys']np.random.seed(0) # 为了可重复性data = pd.DataFrame({ 'Category': np.random.choice(categories, 100), 'Sales': np.random.randint(10, 1000, 100)})# 按类别汇总销售数据sales_by_category = data.groupby('Category').sum().reset_index()# 创建条形图plt.figure(figsize=(10, 6))sns.barplot(x='Category', y='Sales', data=sales_by_category)plt.title('按类别划分的总销售额')plt.xlabel('类别')plt.ylabel('总销售额')plt.show()
首先,我们使用 numpy 和 pandas 生成样本数据。我们创建一个包含两列的 DataFrame:“Category”(类别)和“Sales”(销售额)。从预定义的产品类别列表中随机选择“Category”列的值,“Sales”列包含代表销售金额的随机整数。通过使用 np.random.seed(0),我们确保随机数据是可重复的。生成样本数据后,我们使用 pandas 的 groupby 方法按类别汇总销售金额。这将数据按“Category”列分组,并对每个类别的“Sales”值求和。结果是一个新的 DataFrame,其中每一行代表一个产品类别及其对应的总销售额。然后,我们创建一个条形图,以可视化每个产品类别的总销售额。我们使用 seaborn 的 barplot 函数,指定 x 轴为“Category”,y 轴为“Sales”。我们还通过设置图形大小、添加标题和标记轴来定制图表。执行代码后,它会显示一个条形图,显示每个产品类别的总销售额,使零售商店能够识别哪些类别最受欢迎。【小知识】
Seaborn 基于 matplotlib 构建,提供了一个高级接口,用于绘制美观的统计图表。此外,Seaborn 与 pandas DataFrame 集成良好,便于直接从 DataFrame 对象可视化数据。
系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。
