python读取excel数据并且画图的实现示例

  • Post category:Python

下面我将为你详细讲解如何实现“Python读取Excel数据并绘制图表”的实例教程。

准备工作

在开始之前,我们需要安装openpyxl库和matplotlib库,它们分别用于读取Excel数据和绘制图表。可以通过以下命令进行安装:

pip install openpyxl matplotlib

示例一:单一数据表格的读取与绘图

假设我们有一个Excel文件,其中包含一张名为“数据”的工作表,该工作表上有两列数据,分别为“时间”和“销售额”。

首先,我们需要导入所需的库:

import openpyxl
import matplotlib.pyplot as plt

接下来,我们需要加载Excel文件,并读取我们需要的工作表:

# 加载Excel文件
wb = openpyxl.load_workbook("data.xlsx")

# 选择工作表
ws = wb["数据"]

然后,我们需要遍历工作表上的数据,并将其存储到两个列表中:

# 遍历工作表并读取数据
x_data = []
y_data = []
for row in ws.iter_rows(min_row=2):
    x_data.append(row[0].value)
    y_data.append(row[1].value)

到这里,我们已经成功读取了Excel文件中的数据。现在我们可以使用matplotlib库绘制一张折线图:

# 绘制折线图
plt.plot(x_data, y_data)

# 显示图像
plt.show()

完整代码示例:

import openpyxl
import matplotlib.pyplot as plt

# 加载Excel文件
wb = openpyxl.load_workbook("data.xlsx")

# 选择工作表
ws = wb["数据"]

# 遍历工作表并读取数据
x_data = []
y_data = []
for row in ws.iter_rows(min_row=2):
    x_data.append(row[0].value)
    y_data.append(row[1].value)

# 绘制折线图
plt.plot(x_data, y_data)

# 显示图像
plt.show()

示例二:多个数据表格的读取与绘图

在此示例中,我们假设我们有一个Excel文件,其中包含多张名为“数据1”和“数据2”的工作表。每张工作表上包含两列数据,分别为“时间”和“销售额”。

我们按照示例一的方法,加载Excel文件和选择工作表。不过在这个示例中,我们需要将所有的数据都存储到一个字典中:

# 定义一个字典,用于存储数据
data = {}

# 遍历工作表并读取数据
for ws_name in ["数据1", "数据2"]:
    ws = wb[ws_name]
    x_data = []
    y_data = []
    for row in ws.iter_rows(min_row=2):
        x_data.append(row[0].value)
        y_data.append(row[1].value)

    # 将数据存储到字典中
    data[ws_name] = {
        "x_data": x_data,
        "y_data": y_data
    }

到这里,我们已经将所有的数据都存储到了一个字典中。现在,我们可以使用matplotlib库绘制两张折线图,并将其放在同一张图表上:

# 创建一个图像对象
fig, ax = plt.subplots()

# 绘制第一条折线
ax.plot(data["数据1"]["x_data"], data["数据1"]["y_data"])

# 绘制第二条折线
ax.plot(data["数据2"]["x_data"], data["数据2"]["y_data"])

# 显示图像
plt.show()

其中,我们使用了subplots()函数创建了一个图像对象,然后在该图像对象上绘制了两条折线,并将其放在同一张图表上。

完整代码示例:

import openpyxl
import matplotlib.pyplot as plt

# 加载Excel文件
wb = openpyxl.load_workbook("data.xlsx")

# 定义一个字典,用于存储数据
data = {}

# 遍历工作表并读取数据
for ws_name in ["数据1", "数据2"]:
    ws = wb[ws_name]
    x_data = []
    y_data = []
    for row in ws.iter_rows(min_row=2):
        x_data.append(row[0].value)
        y_data.append(row[1].value)

    # 将数据存储到字典中
    data[ws_name] = {
        "x_data": x_data,
        "y_data": y_data
    }

# 创建一个图像对象
fig, ax = plt.subplots()

# 绘制第一条折线
ax.plot(data["数据1"]["x_data"], data["数据1"]["y_data"])

# 绘制第二条折线
ax.plot(data["数据2"]["x_data"], data["数据2"]["y_data"])

# 显示图像
plt.show()

这就是关于“Python读取Excel数据并绘制图表”的完整实现示例了。希望这个教程能对你有所帮助!