下面我将为你详细讲解如何实现“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数据并绘制图表”的完整实现示例了。希望这个教程能对你有所帮助!