下面我来为你详细讲解如何使用Python读取Excel数据并绘制简单曲线图的完整步骤记录。
1. 确定需求和安装包
首先,你需要确定你的需求是什么:你需要读取Excel文件中的数据进行曲线图绘制。然后,你需要安装以下两个包:
openpyxl
: 用于读写Excel文件。matplotlib
: 用于绘制曲线图。
你可以使用以下命令进行安装:
pip install openpyxl matplotlib
2. 读取Excel数据
在读取Excel数据之前,你需要先打开Excel文件。假设你要读取的Excel文件路径为/path/to/your/excel/file.xlsx
,你可以使用以下代码来打开它:
from openpyxl import load_workbook
workbook = load_workbook('/path/to/your/excel/file.xlsx')
然后,你需要选择其中一个工作表,并获取其中的数据。在本例中,我们假设你要读取的工作表名称为Sheet1
,数据位于第二列到第六列。你可以使用以下代码来完成这个任务:
worksheet = workbook['Sheet1']
data = []
for row in range(2, worksheet.max_row + 1):
row_data = []
for column in range(2, 7):
value = worksheet.cell(row=row, column=column).value
row_data.append(value)
data.append(row_data)
在上面的代码中,我们首先通过worksheet.max_row
获取工作表的行数,然后使用一个嵌套的循环遍历每一行和每一列,将数据保存到一个名为data
的列表中。
3. 绘制曲线图
在获取了Excel数据之后,你可以使用matplotlib
包来绘制曲线图。首先,你需要导入它:
import matplotlib.pyplot as plt
然后,你需要将data
列表中的数据提取出来,并将其绘制成曲线图。在本例中,我们假设第一列是X轴数据,第二到第五列是Y轴数据。你可以使用以下代码来完成这个任务:
x_data = [row[0] for row in data]
y_data = [[row[1], row[2], row[3], row[4]] for row in data]
for i in range(4):
plt.plot(x_data, [row[i] for row in y_data], label=f'Y{i+1}')
plt.legend()
plt.show()
在上面的代码中,我们首先使用列表推导式将X轴数据和Y轴数据分别存储到x_data
和y_data
列表中。然后,我们使用一个循环遍历每一个Y轴数据,并将其绘制成一条曲线。最后,我们使用plt.show()
将曲线图显示出来。
示例1: 读取Excel文件中的温度数据进行曲线图绘制
假设你有一个名为weather.xlsx
的Excel文件,其中包含了每天的最高温度和最低温度。你可以使用以下代码来读取数据并绘制曲线图:
from openpyxl import load_workbook
import matplotlib.pyplot as plt
workbook = load_workbook('weather.xlsx')
worksheet = workbook['Sheet1']
data = []
for row in range(2, worksheet.max_row + 1):
row_data = []
for column in range(2, 4):
value = worksheet.cell(row=row, column=column).value
row_data.append(value)
data.append(row_data)
x_data = [row[0] for row in data]
y_data = [[row[1], row[2]] for row in data]
plt.plot(x_data, [row[0] for row in y_data], label='Max Temperature')
plt.plot(x_data, [row[1] for row in y_data], label='Min Temperature')
plt.legend()
plt.show()
上面的代码将读取Excel文件中的温度数据,并绘制一个最高温度曲线和一个最低温度曲线。
示例2:读取Excel文件中的学生成绩并绘制曲线图
假设你有一个名为scores.xlsx
的Excel文件,其中包含了每个学生的成绩。你可以使用以下代码来读取数据并绘制曲线图:
from openpyxl import load_workbook
import matplotlib.pyplot as plt
workbook = load_workbook('scores.xlsx')
worksheet = workbook['Sheet1']
data = []
for row in range(2, worksheet.max_row + 1):
row_data = []
for column in range(2, 7):
value = worksheet.cell(row=row, column=column).value
row_data.append(value)
data.append(row_data)
x_data = [row[0] for row in data]
y_data = [[row[1], row[2], row[3], row[4]] for row in data]
for i in range(4):
plt.plot(x_data, [row[i] for row in y_data], label=f'Subject{i+1}')
plt.legend()
plt.show()
上面的代码将读取Excel文件中的学生成绩,并绘制四条曲线,分别表示四个科目的成绩。