如何利用Python绘制学术论文图表方法


论文中图表形式多样,常用的处理工具有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=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:UsersAdministratorDesktop
esult.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库:
import numpy 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子图的图,且ax1代表的是第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等语句,能使一段代码如虎添翼,写在这里,作为给自己的提醒:遇到问题先明确方法、形成体系再进入编写,不要盲目地将看似正确的语言进行强行拼凑,返工率极高。
更多如何利用Python绘制学术论文图表方法相关文章请关注PHP中文网!



  • 濡備綍鍒╃敤Python缁樺埗瀛︽湳璁烘枃鍥捐〃鏂规硶
    绛旓細涓昏鏂规硶鏄鍒╃敤python鐨剎lrd搴擄紝娴佺▼濡備笅锛# 瀵煎叆xlrd搴搃mport xlrd# 璇诲彇鎸囧畾Excel鏂囦欢(姝ゅ涓篹xcel_dir)涓殑鏁版嵁data=xlrd.open_workbook(excel_dir)# 璇诲彇鎸囧畾data涓煇sheet(姝ゅ鍛藉悕涓簊heetname)涓殑鏁版嵁table=data.sheet_by_name(sheetname)#璇诲彇table涓煇涓鍒楃殑鏁版嵁needs=table.col_values(0) 鍏...
  • 鍩轰簬python绯荤粺璁捐璁烘枃5000瀛
    绛旓細1銆佺‘瀹氳鏂囦富棰樺拰鐩爣锛氶鍏锛屼綘闇瑕佺‘瀹氫綘鐨勮鏂囦富棰樺拰鐩爣銆傝繖鍙互鏄叧浜嶱ython鍦ㄧ壒瀹氶鍩熺殑搴旂敤锛屽鏁版嵁鍒嗘瀽銆佹満鍣ㄥ涔犮佺綉缁滅紪绋嬬瓑銆傜‘淇濅綘閫夋嫨鐨勪富棰樺叿鏈夊疄闄呮剰涔夊拰鐮旂┒浠峰笺傝繘琛屾枃鐚患杩帮細鏌ラ槄鐩稿叧棰嗗煙鐨勭爺绌舵枃鐚紝浜嗚В褰撳墠鐮旂┒鐨勬渶鏂拌繘灞曞拰瓒嬪娍銆2銆佽繖灏嗗府鍔╀綘纭畾鑷繁鐨勭爺绌舵柟鍚戝拰鐮旂┒闂銆傚悓鏃讹紝娉...
  • frds:閲戣瀺瀛︽湳鐮旂┒鏁版嵁鐨Python搴
    绛旓細frds鐨勮璁″阀濡欏湴铻嶅叆浜哖yQt5鐨勫浘褰㈢晫闈紝鏃犺鏄疻indows鐢ㄦ埛(%USERPROFILE%\frds)杩樻槸Mac/Linux鐢ㄦ埛(~/frds)锛屽彧闇涓閿畨瑁咃紝鍗冲彲浜彈鍒板畠璐村績鐨勮嚜鍔ㄦ暟鎹鐞嗗拰鍔犲瘑WRDS鍑瘉鍔熻兘銆傛棤璁烘槸鍥惧舰鐣岄潰鎿嶄綔锛岃繕鏄懡浠よ璋冪敤锛屽璁$畻Restatement鎸囨爣锛宖rds閮芥彁渚涗簡鐩磋鏄撶敤鐨勮В鍐虫柟妗堛傚畠鐨勬牳蹇冨湪浜庢爣鍑嗗寲锛孏itHub涓...
  • 姣曚笟璁烘枃鐨勮鏂囦唬鐮鎬庝箞鍐?
    绛旓細閫夋嫨缂栫▼璇█鍜屽伐鍏凤細鏍规嵁绠楁硶鐨勯渶姹傚拰瀹為獙鐜閫夋嫨鍚堥傜殑缂栫▼璇█鍜屽紑鍙戝伐鍏銆備緥濡傦紝瀵逛簬鏁板艰绠楀拰鏁版嵁鍒嗘瀽锛孭ython鍜孧ATLAB鏄父鐢ㄧ殑閫夋嫨锛涘浜庢繁搴﹀涔犵瓑鏈哄櫒瀛︿範搴旂敤锛孭ython閰嶅悎TensorFlow鎴朠yTorch绛夋鏋跺彲鑳芥洿涓哄悎閫傘傜紪鍐欎唬鐮侊細鎸夌収绠楁硶璁捐鍜屽疄楠屾祦绋嬬紪鍐欎唬鐮併傛敞鎰忎唬鐮佺殑娓呮櫚鎬с佸彲璇绘у拰鍙淮鎶ゆс傚悎鐞嗕娇鐢...
  • 瀛︽湳璁烘枃涓殑绠楁硶鍙互鐢≒ython鍐欐垚杞憲鍚?
    绛旓細鐩存帴鍐欎汉瀹剁殑绠楁硶瀹炵幇绠楀壗绐冦備絾鏄綘鍙互鍒╃敤璇ョ畻娉曡В鍐充竴涓疄闄呴棶棰橈紝杩欎釜瑙e喅瀹為檯闂鐨勮蒋浠舵槸鍙互鐢宠杞憲鐨勩
  • 13涓渶甯哥敤鐨Python娣卞害瀛︿範搴撲粙缁
    绛旓細鑰屼笖琚簲鐢ㄤ簬瀛︽湳鐣屽拰浜т笟鐣岀殑start-of-the-art搴旂敤绋嬪簭涓備簨瀹炰笂,濡傛灉浣犲幓缈婚槄鏈鏂扮殑娣卞害瀛︿範鍑虹増鐗(涔熸彁渚涙簮浠g爜),浣犲氨寰堝彲鑳戒細鍦ㄥ畠浠浉鍏崇殑GitHub搴撲腑鎵惧埌Caffe妯″瀷銆傝櫧鐒禖affe鏈韩骞朵笉鏄竴涓Python搴,浣嗗畠鎻愪緵缁戝畾鍒癙ython涓婄殑缂栫▼璇█銆傛垜浠氬父鍦ㄦ柊棰嗗煙寮鎷撶綉缁滅殑鏃跺浣跨敤杩欎簺缁戝畾銆傛垜鎶奀affe鏀惧湪杩欎釜鍒楄〃鐨...
  • 涓閿敓鎴愯鏂囩殑杞欢
    绛旓細3銆侀棶棰樹節锛氬啓瀛︽湳璁烘枃鐢浠涔堣蒋浠秝ord鍜宭atex閮藉彲浠ワ紝涓嶈繃latex鎺掔増鏂逛究锛岀増闈㈡紓浜紝涓鐪嬪氨鐭ラ亾銆傞棶棰樺崄锛氱敤浠涔堣蒋浠跺啓灏忚鏈濂藉啓鎵嬫渶甯哥敤鐨勫簲璇ユ槸灏忛粦灞嬪惂锛17k瀹樼綉涓婂氨鏈変笅杞斤紝閫傚簲鍚勭绯荤粺鐨勯兘鏈夛紝鐢ㄨ捣鏉ラ潪甯告柟渚跨殑銆4銆佲濅骇鐢熸鐜拌薄鏄洜涓哄浘鏄湪office绯诲垪鐨勫彟涓杞欢visio涓敾鐨勶紝绮樺埌word涓悗锛岃嚜鍔...
  • py鏄粈涔
    绛旓細3. 浜哄伐鏅鸿兘涓庢満鍣ㄥ涔狅細鐢变簬Python鏈変赴瀵岀殑搴撴敮鎸侊紝濡俆ensorFlow鍜孭yTorch绛夛紝浣垮緱瀹冨湪浜哄伐鏅鸿兘鍜屾満鍣ㄥ涔犻鍩熷崰鎹富瀵煎湴浣嶃傚紑鍙戣呭彲浠浣跨敤杩欎簺搴撴潵鏋勫缓鍜岃缁冨鏉傜殑鏈哄櫒瀛︿範妯″瀷銆Python鐨鏅強搴︽棩鐩婃彁楂橈紝鍏舵槗鐢ㄦу拰寮哄ぇ鐨勫姛鑳藉簱浣垮叾鎴愪负璁稿寮鍙戣呯殑棣栭夎瑷銆傛棤璁烘槸鍦瀛︽湳鐮旂┒銆佸晢涓氬簲鐢ㄨ繕鏄釜浜洪」鐩紝...
  • python璇█鐨勬牳蹇冪悊蹇
    绛旓細棣栧厛锛Python鐨璇硶璁捐闈炲父绠娲侊紝寮鸿皟浠g爜鐨勫彲璇绘с備緥濡傦紝Python浣跨敤缂╄繘鏉ヨ〃绀轰唬鐮佸潡锛岃屼笉鏄儚鍏朵粬璇█閭f牱浣跨敤澶ф嫭鍙枫傝繖绉嶈璁′娇寰桺ython浠g爜缁撴瀯娓呮櫚锛屾槗浜庣悊瑙c傚悓鏃讹紝Python鎻愪緵浜嗕赴瀵岀殑鍐呯疆鍑芥暟鍜屽簱锛屼娇寰楀紑鍙戣呭彲浠ョ敤鏇村皯鐨勪唬鐮佸畬鎴愭洿澶氱殑宸ヤ綔銆備緥濡傦紝鍒楄〃鎺ㄥ寮忓彲浠ュ湪涓琛屼唬鐮佷腑鐢熸垚涓涓柊鐨勫垪琛紝鑰...
  • 姹傚姪 鍏充簬python鐨灏忛棶棰
    绛旓細寰堝璇█鍦ㄧ敓鎴愭暟瀛﹀叕寮忎笂閮藉熷姪浜唋atex鐨勬牸寮忋傚彲浠ヨlatex宸茬粡鎴愪负鏁板鍏紡杈撳叆鏍囧噯锛屽湪word閲岄潰杈撳叆鏁板鍏紡涔熸湁绫讳技鐨勬柟寮忥紙涓嶈繃word閲岄潰鍊掓槸涓鐢$$锛夛紝鍦╩atlab閲岄潰鐨勫鏋滀綘鐢诲浘涔熶細鐢ㄥ埌latex杈撳叆鏍煎紡銆備笉杩噇atex鐨勬渶澶х敤澶勮繕鏄啓瀛︽湳璁烘枃浜嗭紝鍙互浜嗚В涓涓嬨
  • 扩展阅读:python手机版下载官方 ... 往年python编程考题 ... 学python后到底能干什么 ... python编程入门自学下载 ... 少儿python编程自学 ... python初学编程必背 ... 免费的python编程软件 ... python入门考试题库及答案 ... 电脑编程入门自学教程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网