论文中图表形式多样,常用的处理工具有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库

importxlrd#读取指定Excel文件(此处为excel_dir)中的数据

data=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:\Users\Administrator\Desktop\result.xls'data=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库:

importnumpy as npimport matplotlib.pyplot as plt

绘图方法很简单,大致流程如下:

#绘图命令,1为图号,并设置figsize

fig_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')

其中需要说明的几点:

1.如何绘制多图?

很简单,只需在设置了图号名之后,插入:

ax2 = plt.subplot(132)

plt.sca(ax2)

后面的命令与前述一致,值得一提的是,plt.subplot(131)指的是绘制一个含有1×3子图的图,且ax2代表的是第2张图,而plt.sca(ax2)表示选择该子图。

2.设置x轴、y轴以及其他命令如何判断是赋予哪张图的属性呢?

matplotlib会直接将该属性赋予上一plot对象。

3.如何绘制散点图?

把pl.plot(x, y)改成pl.plot(x, y, 'o')即可。

4.其他一些设置参数:

#设置x轴和y轴的上下限

pl.xlim(i, j)

pl.ylim(m,n)#显示图

pl.show()#保存图,自动存为png格式

plt.savefig(dir+name.png,dpi=600)

除此之外还支持设置x轴(y轴)坐标显示,绘制饼状图、直方图等功能,在此不再一一介绍。

三.说点题外话:

曾经看过一句话:“世界上没有烂语言,只有写语言的烂人”。

每种语言各自有其优势,也有其劣势,在此不做过多评价。如何利用语言实现绘图或达到更多目标,在于我们如何选择。恰到好处地使用for或def、class等语句,能使一段代码如虎添翼,写在这里,作为给自己的提醒:遇到问题先明确方法、形成体系再进入编写,不要盲目地将看似正确的语言进行强行拼凑,返工率极高。

毕竟第一篇,有点激动,再特别介绍一下我们团队的成员吧(虽然只有两个人):算了还是不介绍了。

以上内容若有问题或疑问,请联系excelting@qq.com

python数据论文_如何利用Python绘制学术论文图表相关推荐

  1. 怎么用python找论文_如何利用Python绘制学术论文图表方法

    论文中图表形式多样,常用的处理工具有excel.MATLAB以及Python等,excel自处理的方法有两个缺陷: 1.当数据较多时,容易出现excel"翻白眼"的现象: 2.需要 ...

  2. python画四角星_如何利用Python|对多角星的绘制

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:编程与算法之美. 1 前言 在初步学习python的过 ...

  3. 利用python进行数据分析_资料 | 利用Python进行数据分析

    下载地址:https://www.yanxishe.com/resourceDetail/1443?from=leiphonecolumn_res0518 以下内容节选自豆瓣: 内容简介 · · · ...

  4. python求加速度_如何利用Python 为自然语言处理加速度

    自去年发布 Python 的指代消解包(coreference resolution package)之后,很多用户开始用它来构建许多应用程序,而这些应用与我们最初的对话应用完全不同. 利用 spaC ...

  5. python epub 精品_如何利用Python打包HTML页面为epub?

    最近沉迷于将各种博客和官方文档html转化成pdf,结果用手机看还是不太方便,所以想到将html转化成epub格式的电子书,要用os,re,requests,lxm,zipfile,五个库,在这里分享 ...

  6. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  7. sift论文_从十篇热门学术论文看计算机视觉的未来

    错过了CVPR,还有以下论文带你回顾! 原标题 | Ten Trending Academic Papers on the Future of Computer Vision 作者 | Himansh ...

  8. 利用python数据可视化_想用Python做数据可视化?先迈过这个“坎”

    文丨Chris Moffitt 编译丨姜瑞琪 触脉咨询数据分析师 用过python的人都会面临一个问题,尤其是初学者:我应该选哪个来实现数据可视化? 面对众多的选项,要弄清楚什么时候使用哪个的问题没那 ...

  9. ios安装python的步骤_如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

    点击上方"AirPython",选择"加为星标" 第一时间关注 Python 技术干货! 1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? 其 ...

最新文章

  1. 【POJ/算法】 3259 Wormholes(Bellman-Ford算法, SPFA ,FLoyd算法)
  2. mutex的加锁与解锁问题
  3. C# 之 Math取整
  4. c语言树写入文件,如何安全地实现文件树遍历(C语言)
  5. 创建设计模式 - 抽象工厂设计模式
  6. 二层广播风暴产生原因、如何判断、解决--详细解答(附图,建议电脑观看)
  7. json和gson的一些区别
  8. for循环多次调用cuda kernel函数_CUDA程序设计入门(二)——核函数
  9. JAVA获得当前时间的几种方法
  10. python中变量通过变量名访问_如何在python中访问给定变量的名称?
  11. 【英雄联盟动画-双城之战】10点首播!6亿召唤师快来
  12. php时间戳转UTC时间
  13. python编程输入法_用Python写一个拼音输入法
  14. 中国互联网络发展状况统计报告计算机,CNNIC发布《第22次中国互联网络发展状况统计报告》...
  15. iPone强制关机 小技巧
  16. Android 给图片加边框
  17. 顾险峰:当深度学习遇到3D
  18. 安徽省计算机应用能力考试证书,合肥信息技术职业学院1084名学子成功获得了全国信息化应用能力考试合格证书...
  19. 基于PHP+MySQL的健身俱乐部网站的设计与实现
  20. C# 编写Windows Service(windows服务程序)

热门文章

  1. zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
  2. Vue的基础认知二---vue的双向绑定/vue获取DOM节点
  3. mybatis萌新基础
  4. 小程序执行运行过程原理_分享 | 还在焦虑等成绩?成绩小助手了解下
  5. 小智伴机器人使用说明_智伴机器人丨史上最全功能,玩转小智伴看这里!
  6. linux查找某时间后的关键字,linux - 查找指定时间的文件及文件中的关键字
  7. oracle exception 循环,Oracle Exception In Loop
  8. mysql mpm_使用Zabbix + MPM全面监控MySQL
  9. js 数据写到本地记事本_微信小程序连接Mysql数据库步骤
  10. android 蓝牙headset,android – 如何通过反射使用BluetoothHeadset类