论文中图表形式多样,常用的处理工具有excel、MATLAB以及Python等,excel自处理的方法有两个缺陷:
1.当数据较多时,容易出现excel“翻白眼”的现象;
2.需要使用subplot功能或批量处理时,使用MATLAB或Python更为方便;
3.excel处理的图在美观程度上较论文图表标准有一定的距离 。对比MATLAB以及Python的plot功能,从图的美观角度出发,Python稍占优势,下文讲简要介绍将excel中的数据提取到Python中并利用Python的matplotlib库制图的过程 。
一.如何将Excel中的数据导入Python中:
此部分主要介绍如何将Excel中的数据导入python中(原始数据可能在.txt或.out文件中,且数据较为繁杂,可以先利用MATLAB或python将数据进行处理存入Excel中,包括一些简单的计算、排列等,以便于之后的绘图,或直接利用python提取.txt中数据,在此不做详细介绍),主要方法是利用python的xlrd库,流程如下:
# 导入xlrd库import xlrd# 读取指定Excel文件(此处为excel_dir)中的数据data=https://www.dangaocn.com/q/hsgg/xlrd.open_workbook(excel_dir)# 读取指定data中某sheet(此处命名为sheetname)中的数据table=data.sheet_by_name(sheetname)#读取table中某一列的数据needs=table.col_values(0) 其中有几个需要说明的点:
1.excel_dir和sheetname如何定义?
excel_dir应写成字符串的格式(即' '或者" "),最终应以.xls或.xlsx等Excel的后缀结尾,比如读取Administrator桌面上的名为result.xls的文件可写为:
excel_dir = 'C:UsersAdministratorDesktopesult.xls'data=https://www.dangaocn.com/q/hsgg/xlrd.open_workbook(excel_dir)
sheetname定义的方法同上,除此之外sheet还有通过索引顺序的读取方法:
table = data.sheets()[0] #通过索引顺序获取table = data.sheet_by_index(0) #通过索引顺序获取
2.如何读取某单元格或者某行的数据?
流程中所示为读取某sheet中某列的数据,同理某行数据为:
table.col_values(i)
读取某单元格数据命令为:
table.cell(i,j).value
3.读取某行或某列数据时,数据的范围是什么?
举个例子:当某sheet中表格如下时,会读取4×3表格中的数据 。
文章插图
即若想读取B列数据,代码应写为
table.col_values(1)
注意:python是从0开始计数的,故column number应为1,此时计入的信息为:[u'',u'',4,u'']
且注意table的维度由各个sheet决定,及若某excel表格有多个sheet,可能出现list长度不同的情况 。
4.如果想取某列2-5行如何做呢?
table.col_values(i)[1:5]
5.若想取到最后一个数字,应如何编写代码?
由于各行/列的数据类型可能不同,可能会出现第一列仅4个数字,而第二列有9个数字,而最多的一列有100个数字等类似的情况,若直接用取整列的命令,会使list中掺入u'',导致下一步的绘图出错,此时可以使用如下方法:
a_col=table.col_values(i)a=a_col[0,a_col.index(u'')]
但需注意,此命令不能对控制行数的列使用,否则也会报错,可编写其他判断语句进行鉴别是否使用该命令 。
二.如何利用Python进行绘图:
此处介绍利用matplotlib库进行绘图的方法,首先应导入matplotlib库:
import numpy as npimport matplotlib.pyplot as plt
绘图方法很简单,大致流程如下:
# 绘图命令,1为图号,并设置figsizefig_drift= plt.figure(1,figsize=(12,4))# 设置数据在x轴和y轴的坐标,以及颜色、标签等属性,此处用了两组数据plt.plot(drift[0], story,"g-",label='$Damped$')plt.plot(drift[1], story,"r-.",label='$Undamped$')# 设置x轴和y轴的标签plt.xlabel('Drift')plt.ylabel('Storey')# 选择显示数据组标签plt.legend()# 设置x轴和y轴的间隔及范围plt.xticks((0.000,0.005,0.010,0.015))plt.yticks(range(1,5,1))# 设置图名plt.title('minor')
- excel提示输入内容重复
- Python并发编程怎样选择多线程多进程多协程
- 怎样在word中快速制作表格呢?
- Excel快速在表格中定位单元格,快速选取内容,这样操作太牛了
- 神奇的三合一收款码你知道怎么制作的吗?
- Excel中如何输入上下标啊?
- 怎样制作照片拼图
- 在PS中怎么制作出水中倒影的效果
- 怎么随机打乱excel排序
- ps如何制作透明背景图