【作者前言】
對(duì)于科技工作者來說,gnuplot 是一個(gè)非常好用的繪圖軟件。因?yàn)楦锌趃nuplot 中文資料和文檔的缺乏,我于數(shù)月之前在科學(xué)網(wǎng)博客開始撰寫“談?wù)刧nuplot”系列博文,至今已寫了四十五篇。
?
雖然還有不少細(xì)節(jié)問題沒有涉及,但是我覺得這些博文已經(jīng)可以構(gòu)成一個(gè)比較完整的gnuplot 中文教程。對(duì)大多數(shù)用戶來說,這一系列博文已經(jīng)涵蓋了日常應(yīng)用的需要。為了方便大家閱讀,我現(xiàn)在將這一系列博文集結(jié)編輯成為此教程,以CC BY-NC-SA 知識(shí)共享協(xié)議發(fā)布。
?
我們之前的圖像里的title、xlabel 等標(biāo)簽里用到的都是純文本字符串,如果我們希望輸出稍復(fù)雜一點(diǎn)的文字標(biāo)簽,例如字母加角標(biāo),我們可以使用enhanced 文本模式。
?
gnuplot 里面好多terminal 都支持enhanced 模式,使用方法就是在set terminal 的時(shí)候,在后面加上enhanced 參數(shù)。enhanced 模式里有一些表達(dá)特殊含義的字符,利用這些字符可以構(gòu)成一些
?
比較復(fù)雜的文字輸出。這些特殊字符主要包括:
1. ?:表示后面的字符為上角標(biāo)
2. _:表示后面的字符為下角標(biāo)
3. @:表示后面的字符不占任何寬度
4. &{“string”}:表示一段空白,空白的長度等于花括號(hào)內(nèi)那段字符串所占寬度
5. ?:表示后面的兩個(gè)字符重疊打印(相當(dāng)于打字機(jī)在同一位置打印兩個(gè)字符);也可以在第二個(gè)字符前加上一個(gè)數(shù)字,表示第二個(gè)字符相對(duì)于第一個(gè)字符有一個(gè)豎直方向的移動(dòng),移動(dòng)距離等于該數(shù)字乘以字符尺寸。
上面提到的“字符”,也可以是包含在花括號(hào)({})內(nèi)的“字符串”。除了上面這些特殊標(biāo)志,還可以臨時(shí)改變字符(或字符串)的字體,方法是:{/字體名=字體大小字符}下面我們看一些例子:
? “a^x”
ax
? “a_x”
ax
? “a^b_{cd}”
abcd
這里的上下角標(biāo)沒有對(duì)齊,因?yàn)樯蠘?biāo)b 需要占一定寬度
“a^@b_{cd}”
這里我們看到了@ 的作用
“abc&{de}fg”
abc ? fg
這里& 后面的字符沒有顯示,留出一段和這些字符同樣寬度的空白
“~a{1.2\_}”
注意這里的兩個(gè)反斜杠。因?yàn)橄聶M杠(_)是一個(gè)特殊字符,需要在前面加反斜杠n 來表示它本來的意義,而反斜杠本身也是一個(gè)特殊字符,需要在它前面再加一個(gè)反斜杠。我們?cè)诘谒闹v里談到過雙引號(hào)和單引號(hào)的區(qū)別。如果我們?cè)谶@里用單引號(hào)而不是雙引號(hào),那么只需要一個(gè)反斜杠就可以了。這里的1.2 表示后面的字符(_)向上移動(dòng)1.2 個(gè)字符大小的距離。
{/Symbol abc}abc
這里第一個(gè)花括號(hào)里的abc 使用了Symbol 字體,而后面括號(hào)外的abc 使用的是默認(rèn)字體。注意字體名稱前的斜杠方向。這里我們看到,Symbol 字體里的英文字母對(duì)應(yīng)顯示的是希臘字母。Symbol 字體里還包括了一些其它符號(hào),下面是完整的Symbol 字體列表:
上面圖中顯示的是Symbol 字體對(duì)應(yīng)的16進(jìn)制代碼。例如上面例子中的希臘字母,對(duì)應(yīng)的16進(jìn)制代碼分別為61、62、63,轉(zhuǎn)換為8進(jìn)制代碼就是141、142、143。在gnuplot 里,我們可以直接用字符的8進(jìn)制代碼表示這個(gè)字符,所以我們也可以用{/Symbol 141142143} 來表示。根據(jù)上面的內(nèi)容,下面是一個(gè)綜合起來的例子:
gnuplot> set term wxt enhanced
gnuplot> set xlabel “X”
gnuplot> set ylabel “Y”
gnuplot> set xrange [ 0 : 1 0 ]
gnuplot> set xtics 0 ,1 ,10
gnuplot> unset key
gnuplot> set title ” f ( x ) ?=?{/Symbol=16?326}~{x^@3}{1.1{/ Symbol=16?276}}&{ aa }
>?函數(shù)圖像”
gnuplot> plot sqrt ( x**3)
雖然利用enhanced 模式也能顯示一些簡單的數(shù)學(xué)表達(dá)式,但是對(duì)于稍微復(fù)雜一點(diǎn)的公式來說,顯示效果無法令人滿意。要在gnuplot 里顯示數(shù)學(xué)公式,終極方案還是要用LATEX。
關(guān)于如何插入LATEX公式,我們將會(huì)在下一篇文章中繼續(xù)講解。
本文整理自馬歡老師科學(xué)網(wǎng)博客,特此感謝原作者的分享。
?
想看到Gunplot實(shí)際操作?”基于CP2K電子結(jié)構(gòu)理論計(jì)算線上培訓(xùn)班”回放視頻現(xiàn)已上線,CP2K開發(fā)和應(yīng)用者蘭晶崗博士主講,內(nèi)容涵蓋Linux入門知識(shí),密度泛函/優(yōu)化方法/自洽場, 使用數(shù)據(jù)庫構(gòu)建晶體模型,表面吸附/過渡態(tài)理論。長達(dá)13個(gè)小時(shí)的實(shí)操講解,100%好評(píng)率,精彩不容錯(cuò)過!
?
課程試聽請(qǐng)戳:https://ke.qq.com/course/270047
本文轉(zhuǎn)載自馬歡老師科學(xué)網(wǎng)博客,轉(zhuǎn)載目的在于知識(shí)分享,本文觀點(diǎn)不代表V-suan云平臺(tái)立場。
原創(chuàng)文章,作者:菜菜歐尼醬,如若轉(zhuǎn)載,請(qǐng)注明來源華算科技,注明出處:http://www.xiubac.cn/index.php/2023/12/01/c1202a23a2/