目录

1、编译背景

2、运用技术

3、整体思路

 4、输出结果

5、工作效果

6、完整代码


1、编译背景:

        在日常数据分析的过程中,经常需要对销售数据进行可视化对比,可视化对比说白了就是小学的统计图。

        根据题目中的各种条件和数据,绘制出一个可以更加直观地读取信息的图像。 

        (以前给老师看vs现在给老板看)

2、运用技术:

        Python3.11 

        pandas 

        matplotlib

3、整体思路:

      1.首先就先将我们会用到的几个python库导入

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

     2.然后就需要开始读取我们的信息了,通常数据肯定是存再一个excel表格中,所以需要利用pandas来读取一下表格

# 读取 Excel 文件
file_path = '文件路径'  #  Excel 文件路径
sheet_name = '表名称'  # 工作表名称
# 使用 Pandas 读取 Excel 数据
data = pd.read_excel(file_path, sheet_name=sheet_name, skiprows=5)
# 输出一下表格的表头来测试表格读取是否正确
print(data.columns)

    3.现在就需要输入我们对比数据的唯一标识(我这边就以货号来做展示)

product_id_1 = input("请输入第一个货号: ")
product_id_2 = input("请输入第二个货号: ")

   4.现在就来判断一下我们输入的货号是否在我们的表格中,如果在就开始绘制数据折线

if product_id_1 in data["货号"].values and product_id_2 in data["货号"].values:
    # 按照选择的货号过滤数据
    product_data_1 = data[data["货号"] == product_id_1]
    product_data_2 = data[data["货号"] == product_id_2]

    # 提取月份列以及该产品的销售数据
    months = data.columns[1:-1]  # 获取除货号和总计以外的列作为月份
    sales_data_1 = product_data_1.values[0][1:-1]  # 获取第一个货号的销售数据
    sales_data_2 = product_data_2.values[0][1:-1]  # 获取第二个货号的销售数据

    # 创建一个新的图形
    plt.figure(figsize=(10, 5))

    # 绘制第一个货号的折线图
    plt.plot(months, sales_data_1, marker='o', linestyle='-', color='b', label=product_id_1)

    # 绘制第二个货号的折线图
    plt.plot(months, sales_data_2, marker='x', linestyle='--', color='r', label=product_id_2)

    # 添加标题和标签
    plt.title('销售数据折线图比较')
    plt.xlabel('月份')
    plt.ylabel('销售量')

    # 旋转x轴标签以防止重叠
    plt.xticks(rotation=45)

    # 添加网格以提高可读性
    plt.grid(True)

    # 添加图例
    plt.legend()

    # 显示折线图
    plt.tight_layout()  # 调整子图间的布局
    plt.show()

    5.如果货号不在表格中,则输出”货号不存在,请输入两个有效的货号“

else:
    print("货号不存在,请输入两个有效的货号。")

 4、输出结果:

5、工作效果:

现在把系统给老板看,跟老板说,现在只要动动手指就能看到每种商品的销售曲线,老板不得夸你有细节!

6、完整代码:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 加载字体
font_path = 'C:/Windows/Fonts/simhei.ttf'  # 字体路径
font_prop = fm.FontProperties(fname=font_path)
plt.rcParams['font.family'] = font_prop.get_name()

# 读取 Excel 文件
file_path = '文件路径'  #  Excel 文件路径
sheet_name = '工作表'  # 工作表名称

# 使用 Pandas 读取 Excel 数据
data = pd.read_excel(file_path, sheet_name=sheet_name, skiprows=5)
print(data.columns)

# 输入两个需要对比的货号
product_id_1 = input("请输入第一个货号: ")
product_id_2 = input("请输入第二个货号: ")

# 检查货号是否存在于数据中
if product_id_1 in data["货号"].values and product_id_2 in data["货号"].values:
    # 按照选择的货号过滤数据
    product_data_1 = data[data["货号"] == product_id_1]
    product_data_2 = data[data["货号"] == product_id_2]

    # 提取月份列以及该产品的销售数据
    months = data.columns[1:-1]  # 获取除货号和总计以外的列作为月份
    sales_data_1 = product_data_1.values[0][1:-1]  # 获取第一个货号的销售数据
    sales_data_2 = product_data_2.values[0][1:-1]  # 获取第二个货号的销售数据

    # 创建一个新的图形
    plt.figure(figsize=(10, 5))

    # 绘制第一个货号的折线图
    plt.plot(months, sales_data_1, marker='o', linestyle='-', color='b', label=product_id_1)

    # 绘制第二个货号的折线图
    plt.plot(months, sales_data_2, marker='x', linestyle='--', color='r', label=product_id_2)

    # 添加标题和标签
    plt.title('销售数据折线图比较')
    plt.xlabel('月份')
    plt.ylabel('销售量')

    # 旋转x轴标签以防止重叠
    plt.xticks(rotation=45)

    # 添加网格以提高可读性
    plt.grid(True)

    # 添加图例
    plt.legend()

    # 显示折线图
    plt.tight_layout()  # 调整子图间的布局
    plt.show()
else:
    print("货号不存在,请输入两个有效的货号。")

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐