百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

如何用Python绘制学术报告图表? python绘制sci科研图

bigegpt 2024-10-06 02:46 7 浏览

作者:ExcelTing

原文:http://cnblogs.com/excelting/p/6507680.html

全文约 3581 字,读完可能需要 5 分钟。

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

  1. ## 导入xlrd库

  2. import xlrd

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

  4. data=xlrd.open_workbook(excel_dir)

  5. ## 读取指定data中某sheet(此处命名为sheetname)中的数据

  6. table=data.sheet_by_name(sheetname)

  7. ## 读取table中某一列的数据

  8. needs=table.col_values(0)

其中有几个需要说明的点:

1.excel_dir和sheetname如何定义?

excel_dir应写成字符串的格式(即' '或者" "),最终应以.xls或.xlsx等Excel的后缀结尾,比如读取Administrator桌面上的名为result.xls的文件可写为:

  1. excel_dir = 'C:\Users\Administrator\Desktop\result.xls'

  2. data=xlrd.open_workbook(excel_dir)

sheetname定义的方法同上,除此之外sheet还有通过索引顺序的读取方法:

  1. table = data.sheets[0] ## 通过索引顺序获取

  2. table = data.sheet_by_index(0) ## 通过索引顺序获取

2.如何读取某单元格或者某行的数据?

流程中所示为读取某sheet中某列的数据,同理某行数据为:

  1. table.col_values(i)

读取某单元格数据命令为:

  1. table.cell(i,j).value

3.读取某行或某列数据时,数据的范围是什么?

举个例子:当某sheet中表格如下时,会读取4×3表格中的数据。

即若想读取B列数据,代码应写为

  1. table.col_values(1)

注意:python是从0开始计数的,故column number应为1,此时计入的信息为:[u'',u'',4,u'']

且注意table的维度由各个sheet决定,及若某excel表格有多个sheet,可能出现list长度不同的情况。

4.如果想取某列2-5行如何做呢?

  1. table.col_values(i)[1:5]

5.若想取到最后一个数字,应如何编写代码?

由于各行/列的数据类型可能不同,可能会出现第一列仅4个数字,而第二列有9个数字,而最多的一列有100个数字等类似的情况,若直接用取整列的命令,会使list中掺入u'',导致下一步的绘图出错,此时可以使用如下方法:

  1. a_col=table.col_values(i)

  2. a=a_col[0,a_col.index(u'')]

但需注意,此命令不能对控制行数的列使用,否则也会报错,可编写其他判断语句进行鉴别是否使用该命令。

二.如何利用Python进行绘图:

此处介绍利用matplotlib库进行绘图的方法,首先应导入matplotlib库:

  1. import numpy as np

  2. import matplotlib.pyplot as plt

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

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

  2. fig_drift= plt.figure(1,figsize=(12,4))

  3. ## 设置数据在x轴和y轴的坐标,以及颜色、标签等属性,此处用了两组数据

  4. 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.如何绘制多图?

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

    1. ax2 = plt.subplot(132)

    2. 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.其他一些设置参数:

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

    2. pl.xlim(i, j)

    3. pl.ylim(m,n)

    4. ## 显示图

    5. pl.show

    6. ## 保存图,自动存为png格式

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

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

    三.说点题外话:

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

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

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

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

    题图:pexels,CC0 授权。

    相关推荐

    5分钟调色大片的方法(5分钟调色大片的方法有哪些)

    哈喽大家好。在大家印象中一定觉得ps非常难学非常难。大家不要着急,小编的教学都是针对ps零基础的同学的,而且非常实用哦。只要大家跟着图文练习一两遍,保证大家立马学会~!好了,废话少说,下面开始我们今天...

    闪白特效原来是这么用的(闪白特效怎么使用)

    作者|高艳侠订阅|010-86092062闪白特效是影视作品中应用比较多的效果之一,那么具体该在哪些场景使用闪白特效?具体该如何操作?下面就以AdobePremiere(以下简称PR)为例,...

    ppt常用小图标去哪里找?3个矢量素材网站推荐!

    ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?为方便各位快速找到合适的...

    有什么好用的截图录屏工具?试试这9款

    经常有朋友反馈苦于缺乏截屏和录屏的趁手工具,本期我们分享几个相当好用的截屏和录屏工具,希望能帮到大家。ScreenToGifScreenToGif是一款免费且开源的录屏工具。此款工具最大的特点是可以...

    配色苦手福音!专业快速色环配色PS插件

    今天橘子老师给的大家介绍的是一款快速配色的插件,非常强大配色苦手福音来啦!(获取方式见文末)【插件介绍】配色在后期设计中占有主导地位,好的配色能让作品更加抢眼Coolorus这款专业的配色插件,能够...

    如何用PS抠主体?(ps怎么抠主体)

    1.主体法抠图-抠花苞和花梗导入一张荷花苞的照片,点击上图中顶部“选择”菜单栏,下拉单击“主体”。可以看到,只有花苞被选中,但是花梗并没有被选中。接下来单击上图中左侧工具栏的“快速选择工具”,上图中顶...

    2799元的4K电视,有保障吗?(买4k电视机哪个品牌好)

    在上一期《电脑报》的3·15专题报道中,我们揭露了一款不靠谱的42英寸4K智能电视——TCLD42A561U。这款售价2699元的4K智能电视不仅4K画质方面存在严重问题,而且各种功能和应用体验也不理...

    苹果电脑的Touch Bar推出一段时间了 这款工具可以帮你开发适用于它的APP

    距离苹果推出带有TouchBar的MacBookPro已经有一段时间了,除了那些像Adobe、Google和Microsoft大公司在开发适用于TouchBar的应用之外,其实还有很多独立的开...

    如魔法般吸取颜色的桌灯(如魔法般吸取颜色的桌灯叫什么)

    色彩为生活带来的感官刺激,逐渐被视为理所当然。一盏桌灯运用它的神奇力量,将隐藏于物件中的颜色逐一释放,成为装点环境的空间魔法师。ColorUp是一款可以改变颜色的吸色台灯,沿用传统灯泡的造型,融入了拾...

    一篇文章带你用jquery mobile设计颜色拾取器

    【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

    ps拾色器快捷键是什么?(ps2019拾色器快捷键)

    ps拾色器快捷键是什么?文章末尾有获取方式,按照以下步骤就能自动获得!学会制作PS特效需要一定程度的耐心和毅力。初学者可以从基本的工具和技术开始学习,逐渐提高他们的技能水平。同时,观看更多优秀的特效作...

    免费开源的 Windows 截图录屏工具,支持 OCR 识别和滚动截图等

    功能很强大、安装很小巧的免费截图、录屏工具,提供很多使用的工具来帮我么能解决问题,推荐给大家。关于ShareXShareX是一款免费的windows工具,起初是一个小巧的截图工具,经过多年的迭...

    入门到精通系列PS教程:第13篇 · 拾色器、颜色问题说明及补充

    入门到精通系列PS教程:第13篇·拾色器、颜色问题说明及补充作者|侯潇问题说明我的第12篇教程里,有个小问题没有说清楚。要说是错误,又不算是错误,只是没有说准确。写完那篇教程后,因为已经到了深...

    PS冷知识:用吸管工具吸取屏幕上的任意颜色

    今天,我们给大家介绍PS中的一个冷知识:用吸管工具可以吸取屏幕上的任意颜色。其实,操作起来是非常简单的。大多数情况下,我们认为,PS的吸管工具只能吸取PS软件作图区域范围内的颜色,最多加上画布四周的...

    Windows 11 将提供内置颜色选择器工具

    Windows11内置了颜色选择器,可以扫描并识别屏幕上的颜色并生成颜色代码。此外,微软还利用人工智能技术,让屏幕上的文本扫描和选择变得更加便捷。这两项功能均已在SnippingToolv1...