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其它相關文章!

推薦閱讀: