論文中圖表形式多樣,常用的處理工具有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:\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函式庫:
#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中文网!

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。