通过xlrd模块读取.xls文件,数据如下,总计162行16列:
读取与作图如下:
python
from xlrd import open_workbook
import matplotlib
import matplotlib.pyplot as plt
# 设置字体为微软雅黑,解决中文显示问题
matplotlib.rc("font", family='Microsoft YaHei')
datafilepath='C:\\Users\\yh\\Documents\\python file\\F1-18.xlsx'
# 打开 excel 文件
xlsx = open_workbook(datafilepath)
# 通过索引获取第 1 个表格中的内容,一个 excel 文件可能会包含多个表格
sheet = xlsx.sheet_by_index(1)
# 通过索引获取表格中第 1 行的内容
#row1 = sheet.row_values(0)
data_2k=[]
data_4k=[]
data_6k=[]
for i in range(18):
temp_2k=[]
temp_4k=[]
temp_6k=[]
for j in range(16):
temp_2k.append((sheet.row_values(9*i)[j] +sheet.row_values(9*i+1)[j]+sheet.row_values(9*i+2)[j])/3)
temp_4k.append((sheet.row_values(9*i+3)[j] +sheet.row_values(9*i+4)[j]+sheet.row_values(9*i+5)[j])/3.0)
temp_6k.append((sheet.row_values(9*i+6)[j] +sheet.row_values(9*i+7)[j]+sheet.row_values(9*i+8)[j])/3.0)
data_2k.append(temp_2k)
data_4k.append(temp_4k)
data_6k.append(temp_6k)
# 2.画线plot()
# 索引列表
seq=[]
for i in range(16):
seq.append(i*0.02+0.02)
plt.xticks(seq)
for i in data_2k:
plt.plot(seq,i,linewidth=2) # 列表内的数据被视为y轴的值,x轴的值会根据列表值的索引位置自动产生
plt.title(label='2000孔后的外径', fontsize=18)
plt.xlabel(xlabel='到钻尖的距离(mm)', fontsize=15)
plt.ylabel(ylabel='外径(mm)', fontsize=15)
plt.tick_params(axis='both', labelsize=8, color='red', labelcolor='green')
# 显示绘制的图形
plt.show()