論文繪圖神器來了:一行代碼繪制不同期刊格式圖表,哈佛博士后開源
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
「一篇論文投多個期刊,每個期刊對圖表格式要求不一,同一組數據要用多種工具分別繪圖?!?/p>
不光是你,哈佛大學天文研究所的博士后,也不堪忍受論文重復繪圖之苦。
他的解決辦法是:親自開發一個Matplotlib的補充包,增添scatter、notebook等其他軟件常用的繪圖工具,還支持一鍵調用符合IEEE等不同期刊要求的圖表格式。
現在,這個論文神器已經在Github開源,@愛可可老師 也在微博推薦,收獲大量轉發好評。
安裝工具包
推薦使用Python3環境,并且要預裝Matplotlib原始包。
安裝這款補充包可以通過pip用一行代碼完成:
- pip install git+https://github.com/garrettj403/SciencePlots.git
你也可以選擇手動安裝工具包,把Github上的項目克隆到本地以后,直接將*.mplstyle的所有文件放到Matplotlib的風格(style)路徑下。如果不清楚具體路徑,使用以下代碼:
- import matplotlib
- print(matplotlib.get_configdir())
編譯器會返回Matplotlib的路徑,你可能還需要手動建立一個stylelib文件夾。
使用教程
調用補充包的各種風格和格式十分簡單,都可以通過一行代碼直接實現。
「science」是這個補充包最基本的一種風格,基本滿足一般科研論文的繪圖要求,代碼如下:
- import matplotlib.pyplot as plt
- plt.style.use('science')
也可以在同一張圖中使用多個不同的風格:
- plt.style.use(['science','ieee'])
對于一些期刊,比如IEEE,圖表的格式要求中提出要在基本格式上強調某些特定的參數(字體大小,圖片寬度等),單獨調用這些特殊格式要求使用如下代碼:
- with plt.style.context(['science', 'ieee']):
- plt.figure()
- plt.plot(x, y)
- plt.show()
調用指令就這么簡單。
使用實例
基本風格「science」:
「science」+「grid」(網格)風格:
「ieee」風格:IEEE期刊對圖表的尺寸、文字大小都有要求,同時還要求在黑白印刷時也能清晰呈現,下圖是符合要求的「science」+「ieee」風格:
「science」+「scatter」(離散)風格:
Jupyter環境下的「notebook」風格:
補充包中的風格也可以和Matplotlib中的已有風格一起調用,例如「dark_background」+「science」+「 high-vis」:
此外,擴展包還提供多種繪圖色彩搭配方案。
high-vis:
bright:
vibrant:
muted:
retro:
補充包默認使用Latex字體渲染,如果電腦中沒有Latex,可以改用無Latex渲染模式:
- plt.style.use(['science','no-latex'])
這個項目還在持續更新中,作者會不斷添加不同的期刊格式,如果需要檢查更新最新版本,通過這行代碼實現:
- pip install SciencePlots
作為科研黨的你看到這款論文神器有沒有心動呢?
如果它真的對你寫論文有幫助,那么趕緊用起來吧。
傳送門
Github項目地址:
https://github.com/garrettj403/SciencePlots