R語言繪圖時輸出希臘字符上下標及數學公式實現方法
通常在我們寫論文時,所需要的統計圖是非常嚴謹的,裡面的希臘字符與上下腳標都必須要嚴格書寫。因此在使用R
繪圖時,如何在我們目標圖中使用希臘字符、上標、下標及一些數學公式呢?在本博客中我們會進行詳細的說明。
後面我們都將以一個最簡單的繪圖為例,隻是將其標題進行修改。
希臘字母
使用希臘字符、上標、下標及數學公式,都需要利用一個函數:expression()
,具體使用方式如下:
plot(cars) title(main = expression(Sigma))
輸出:
上下標
expression()
中的下標為[]
,上標為^
,空格為~
,連接符為*
。示例代碼如下:
plot(cars) title(main = expression(Sigma[1]~'a'*'n'*'d'~Sigma^2))
輸出:
paste
想達到上面的效果,我們其實可以使用paste()
與expression()
進行組合,不需要上述繁瑣的過程,也能夠達到我們上述一模一樣的輸出,並且方便快捷:
plot(cars) title(main = expression(paste(Sigma[1], ' and ', Sigma^2)))
一個復雜的例子
目標:
代碼:
expression(paste((frac(1, m)+frac(1, n))^-1, ABCD[paste(m, ',', n)]))
進階
在我們想批量產生大量含有不同變量值的標題時,如果遇到變量與公式的混合輸出該如何操作,
可參考前文:R語言繪圖公式與變量對象混合拼接實現方法
數學公式
最後的數學公式,隻需要在expression()
中進行相應的符號連接即可
具體要求可參考:Mathematical Annotation in R
鑒於其很不穩定,這裡將裡面的細節搬運過來。
(下表也可以直接在 R help 中搜索 plotmath
獲取。)
Syntax | Meaning |
---|---|
x + y | x plus y |
x – y | x minus y |
x*y | juxtapose x and y |
x/y | x forwardslash y |
x %±% y | x plus or minus y |
x %/% y | x divided by y |
x %*% y | x times y |
x %.% y | x cdot y |
x[i] | x subscript i |
x^2 | x superscript 2 |
paste(x, y, z) | juxtapose x, y, and z |
sqrt(x) | square root of x |
sqrt(x, y) | yth root of x |
x == y | x equals y |
x != y | x is not equal to y |
x < y | x is less than y |
x <= y | x is less than or equal to y |
x > y | x is greater than y |
x >= y | x is greater than or equal to y |
!x | not x |
x %~~% y | x is approximately equal to y |
x %=~% y | x and y are congruent |
x %==% y | x is defined as y |
x %prop% y | x is proportional to y |
x %~% y | x is distributed as y |
plain(x) | draw x in normal font |
bold(x) | draw x in bold font |
italic(x) | draw x in italic font |
bolditalic(x) | draw x in bolditalic font |
symbol(x) | draw x in symbol font |
list(x, y, z) | comma-separated list |
… | ellipsis (height varies) |
cdots | ellipsis (vertically centred) |
ldots | ellipsis (at baseline) |
x %subset% y | x is a proper subset of y |
x %subseteq% y | x is a subset of y |
x %notsubset% y | x is not a subset of y |
x %supset% y | x is a proper superset of y |
x %supseteq% y | x is a superset of y |
x %in% y | x is an element of y |
x %notin% y | x is not an element of y |
hat(x) | x with a circumflex |
tilde(x) | x with a tilde |
dot(x) | x with a dot |
ring(x) | x with a ring |
bar(xy) | xy with bar |
widehat(xy) | xy with a wide circumflex |
widetilde(xy) | xy with a wide tilde |
x %<->% y | x double-arrow y |
x %->% y | x right-arrow y |
x %<-% y | x left-arrow y |
x %up% y | x up-arrow y |
x %down% y | x down-arrow y |
x %<=>% y | x is equivalent to y |
x %=>% y | x implies y |
x %<=% y | y implies x |
x %dblup% y | x double-up-arrow y |
x %dbldown% y | x double-down-arrow y |
alpha – omega | Greek symbols |
Alpha – Omega | uppercase Greek symbols |
theta1, phi1, sigma1, omega1 | cursive Greek symbols |
Upsilon1 | capital upsilon with hook |
aleph | first letter of Hebrew alphabet |
infinity | infinity symbol |
partialdiff | partial differential symbol |
nabla | nabla, gradient symbol |
32*degree | 32 degrees |
60*minute | 60 minutes of angle |
30*second | 30 seconds of angle |
displaystyle(x) | draw x in normal size (extra spacing) |
textstyle(x) | draw x in normal size |
scriptstyle(x) | draw x in small size |
scriptscriptstyle(x) | draw x in very small size |
underline(x) | draw x underlined |
x ~~ y | put extra space between x and y |
x + phantom(0) + y | leave gap for “0”, but don’t draw it |
x + over(1, phantom(0)) | leave vertical gap for “0” (don’t draw) |
frac(x, y) | x over y |
over(x, y) | x over y |
atop(x, y) | x over y (no horizontal bar) |
sum(x[i], i==1, n) | sum x[i] for i equals 1 to n |
prod(plain§(X==x), x) | product of P(X=x) for all values of x |
integral(f(x)*dx, a, b) | definite integral of f(x) wrt x |
union(A[i], i==1, n) | union of A[i] for i equals 1 to n |
intersect(A[i], i==1, n) | intersection of A[i] |
lim(f(x), x %->% 0) | limit of f(x) as x tends to 0 |
min(g(x), x > 0) | minimum of g(x) for x greater than 0 |
inf(S) | infimum of S |
sup(S) | supremum of S |
x^y + z | normal operator precedence |
x^(y + z) | visible grouping of operands |
x^{y + z} | invisible grouping of operands |
group(“(“,list(a, b),”]”) | specify left and right delimiters |
bgroup(“(“,atop(x,y),”)”) | use scalable delimiters |
group(lceil, x, rceil) | special delimiters |
group(lfloor, x, rfloor) | special delimiters |
以上就是R語言繪圖時輸出希臘字符上下標及數學公式實現方法的詳細內容,更多關於R語言繪圖輸出希臘字符上下標及數學公式的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 從np.random.normal()到正態分佈的擬合操作
- R語言寫2048遊戲實例講解
- Matplotlib可視化之自定義顏色繪制精美統計圖
- R語言繪圖公式與變量對象混合拼接實現方法
- 詳解R語言plot函數參數合集