Hello,everyone!!! 我又来了,喜欢搞点骚操作,而又不好好科研的科研僧就是我,介绍完毕开始今天的闲聊。
如果你是直接看如何采用Python最简便的读取csv文件,就可以直接跳到第二部分进行阅读,如果对于抓取文献数据有点兴趣,就可以停留一下
一. 如何抓取文献数据
1.1 软件WebPlotDigitizer
下载地址:https://automeris.io/WebPlotDigitizer/
是不是看见这个界面已经爱上她了呢! 安装方法就略过了,windows下傻瓜式安装呢。
操作方法:
- 第一步:导入图片:File---->Load Image
- 第二步:选取坐标系上的四个点,确定坐标系取值范围
当然,如何确定这个软件也会贴心的告诉你呢!
确定四个点的起始位置,如果是指数形式,可以自行选择。
- 第三步:选取数据点
- 第四步:导出数据并保存为csv文件
这样你就可以把一些文献上的数据提取出来,然后就可以跟自己的计算结果或者实验结果进行对比分析了,是不是感觉自己科研水平提高了呢,当然我是没有了!
二. Python处理csv文件并作图
方法一:采用numpy的loadtxt函数:
由于代码比较简单,我就不解释了,看到网上很多大佬写的,感觉很深奥,我果断放弃了,我感觉代码简介,可以解决问题,效率高就可以了,不能让我们解决个问题,看的东西也太多了吧(纯属吐槽一下!)
先导入一些要用的包:
import numpy as np
import matplotlib.pylab as plt
import pandas as pd
import csv
接下来是主要代码:
data_csv1 = np.loadtxt("data2.csv",dtype=str,delimiter=',').astype(float)
data_x0 = data_csv1[:10,0]
data_y0 = data_csv1[:10,1]
plt.plot(data_x0,data_y0,'ro--')
plt.show()
我相信这个代码so easy我就不讲了!
方法二:采用python:
with open('data2.csv','r') as csvfile:reader = csv.reader(csvfile)rows = [row for row in reader]
data_csv = np.array(rows).astype(float)
data_x = data_csv[:10,0]
data_y = data_csv[:10,1]
plt.plot(data_x,data_y,'ro--')
plt.show()
也比较简单了,就是open,list-->array, str-->float等一些需要注意的知识点了。
方法三:采用pandas中的read_csv函数
csv_data1 = pd.read_csv('data2.csv',header=None)
data1 = csv_data1.to_numpy()data_x3 = data1[:10,0]
data_y3 = data1[:10,1]
data_x4 = data1[10:17,0]
data_y4 = data1[10:17,1]
data_x5 = data1[17:,0]
data_y5 = data1[17:,1]
plt.plot(data_x3,data_y3,'bo--')
plt.plot(data_x4,data_y4,'ro--')
plt.plot(data_x5,data_y5,'go--')
plt.show()
是不是也是超级简单呢,哎呀能解决问题就可以嘛!
最后是提取的数据结果图像:
三. 总结
希望对大家有帮助,上一次发布的博客由于没有及时预览,导致有些朋友的问题回答不及时,再次非常抱歉,在新的一年,我会更加关注,也会写出更多有意思的博客,可以更好的跟大家交流,好了这次就到这里了!
最后还想说一下,如果你感觉python麻烦了,直接取出csv中的数据origin作图一次性搞定!!!