動機
對于理工科的同學队塘,學位論文里通常有大量圖片,大多數(shù)需要通過matlab來繪制宜鸯,但是基本的matlab語句用起來不方便憔古,例如貼圖到word里發(fā)現(xiàn)字體特別小之類的。
解決方案
為提高效率淋袖,開發(fā)了matlab繪圖輔助工具鸿市,解決了以下痛點:
1. 圖片標題、坐標軸標題、字體焰情、以及圖片寬度統(tǒng)一設置
一行代碼實現(xiàn):
utilForFormat.dissertationPlot('標題字符串','x軸標題','y軸標題',7.5);
其中7.5是圖片寬度陌凳,單位cm。
繪制之后可直接貼到word中内舟,避免手工調整的繁瑣以及調整后圖中字體大小不正確的問題合敦。
例如本人學校的論文模板,頁邊距之內的寬度大約為16cm验游,那么可以設置10cm的圖占據(jù)一行充岛,或者設置7.5cm的兩張圖并列占一行。貼圖后字體大小都一樣耕蝉,非常美觀崔梗。
字體的話默認是宋體10pt加粗,符合學位論文要求垒在。如果要修改默認字體蒜魄,可以這樣設置:
utilForFormat.setDefaultFont('宋體', 10, 'bold');
設置一次即可后面都會按這個來,原理是把設置的值存儲到了utilForFormat對象中了场躯。
2. 多曲線在同一張圖中谈为,實現(xiàn)不同曲線自動設置不同樣式
在matlab中,曲線樣式由顏色(color)踢关、線型(line)和標記(marker)組成峦阁。在曲線很多的時候,如果手工設置逐個曲線的樣式的話將非常繁瑣耘成。
為此,設計了一個輔助函數(shù)實現(xiàn)曲線樣式的自動生成(280種樣式)驹闰,而且可通過簡單設置參數(shù)'cml'或者'lcm'等實現(xiàn)優(yōu)先級的選擇瘪菌,代碼如下:
labelsForPlotLine = utilForFormat.labelsForPlotLineGnrt('cml');
% 'cml': 先color,再 marker最后 line的順序生成曲線樣式
% labelsForPlotLine 為不同樣式組合的元胞數(shù)組
其中嘹朗,labelsForPlotLine 是元胞數(shù)組师妙,每個元素代表不同樣式的字符串,效果如圖:
3. 固定寬度時屹培,二維圖邊緣的空白問題
可能是matlab的bug默穴,在對二維圖直接設置寬度時,會導致邊緣出現(xiàn)空白褪秀,那么實際上圖片實際寬度是縮小了蓄诽,未達到所設置的寬度,如圖:
為此媒吗,專門寫了一段代碼修復了該問題仑氛,效果如圖:
4. 繪圖后圖片自動在電腦屏幕的中心
前文的dissertationPlot函數(shù)調用之后圖像自動居中,治好了我的強迫癥。
5.彩蛋:本工具全國使用情況統(tǒng)計功能
如果你好奇今天至少有多少人在陪自己寫學位論文锯岖,這些人在全國的分布情況是怎樣的介袜,可以使用下統(tǒng)計功能(利用#提供的服務),數(shù)據(jù)是公開的出吹,實時更新遇伞,大家可以在http://new.#/v1/login.php?siteid=1254502417里查看(訪客分析->地區(qū)\運營商)。數(shù)據(jù)可能長這樣:
該功能很安全捶牢,只是通過matlab來瀏覽某個網址實現(xiàn)的(在UtilForFormat.m文件的27鸠珠,28行)。如果你不想被統(tǒng)計叫确,可以關閉該功能跳芳,很簡單,把
utilForFormat = UtilForFormat('on');
里的on改為off即可竹勉。
下載地址和用法
下載地址:https://github.com/ztinpn/utilForFormat/archive/master.zip
Github項目地址:https://github.com/ztinpn/utilForFormat
用法:UtilForFormat.m是工具類文件飞盆,拷貝到自己的項目目錄下。demo.m是示例代碼次乓,使用的時候吓歇,把里面對應的代碼段復制到別處使用即可。
注意:復制圖片前需要保證copy options已選擇preserve information票腰,transparent background
以及match figure screen size
最后城看,祝大家順利畢業(yè)哈!