200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用python读取excel中的数据 并绘制折线图

使用python读取excel中的数据 并绘制折线图

时间:2018-10-04 11:23:35

相关推荐

使用python读取excel中的数据 并绘制折线图

使用python读取excel中的数据,并绘制折线图

做实验的时候采集到一些数据,从文本拷贝到excel,然后从十六进制转换成十进制。图表是分析数据的有利工具,使用python绘制出的图表简明美观。所以我这次尝试一下。python新手,请多多指教。

我这次的数据比较简单,在excel中只有一个sheet,一列有效数据。所以这次的任务可以分为两部分:读取数据,绘图。

一, 读取数据

链接

这个写的很详细,但是可能因为python的版本不同,语法有些出入,然后这个博主有多个sheets,所以不好套用。

强行套用的后果:这是我第一次做出来的结果,这个图像与预期相差很大。

但是总结一下经验,我需要做的其实很简单:1,打开excel文件;2,读取当前sheet;3,读取我那一列有效数据并存储。

接下来我们一一讲解:

打开excel文件:

导入xlrd是必须的。

点击查看关于xlrd的更多资料

首先需要 import xlrd

然后打开文件的指令是:

xlrd.open_workbook(filename=None, logfile=<_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘UTF-8’>, verbosity=0, use_mmap=1, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False)

在这个例子中, 读取出来的excel文件被存入新建变量data中:

data = xlrd.open_workbook(r’文件存储地址及文件名’)读取当前sheet

我个人理解是,打开文件以后,将文件视为一个列表,列表的元素就是文件中所含的sheet。

所以,如果我要读取第一个sheet,只需将其存入一个新建变量中:

table = data.sheets()[0]

如果要读取第二个的话,就改变[ ]中的数值即可。读取有效数据

我把数据存在第3列,其中第1行是标题行,剩余的第2行至第301行都是我的实验数据,所以我现在要做的就是把第3列读出来,存入列表中,然后将第2至301个数据存入y_data中。

第3列的数据我定义为cap:cap = table.col_values(2)

然后再使用一个循环,从cap中读取出我需要的数据。

for i in range(1,301):y_data.append(cap[i])

我的x轴就是1至300自然数,所以不单独读取了。

二, 画图

画图的话就相对简单了,使用matplotlib.pyplot即可。首先需要导入:

import matplotlib.pyplot as plt

plt.plot(x_data, y_data, ‘bo-’, label = u’response’, linewidth = 1)

#plt.plot(x轴数据, y轴数据, 曲线类型,图例说明,曲线线宽)

plt.title(‘标题’)

plt.legend() #使能,具体怎么个作用我也不清楚

plt.xlabel(‘x轴标签’)

plt.ylabel(‘y轴标签’)

plt.show() #显示图像

好了,把这些语句搞搞清楚,就可以写出一个简单的代码,并绘制图像了。

我的代码如下:

import matplotlib.pyplot as pltimport xlrdx_data=[]y_data=[]data = xlrd.open_workbook(r'文件存储位置+文件名')table = data.sheets()[0]x_data = list(range(300))cap = table.col_values(2)#print(cap) #打印出来检验是否正确读取for i in range(1,301):y_data.append(cap[i])plt.plot(x_data, y_data, 'bo-', linewidth = 1)plt.title('biaoti')plt.legend()plt.xlabel('x')plt.ylabel('y')plt.show()

然后就显示出漂亮的曲线啦,真的超简单的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。