2017-08-18 50 views
0

我有以下數據和情節:[R GGPLOT2:如何使用乳膠字體 mathcal沿y標籤

library(ggplot2) 

df = as.data.frame(matrix(rnorm(400), ncol = 2)) 
plt = ggplot(data = df, aes(x = V1, y = V2)) + geom_point() 
plt 

假設我想改變y軸的標籤是從乳膠\mathcal{D},我怎樣才能做到這一點?我嘗試使用latex2exp庫中的TeX,但它似乎不起作用。這是我試過的:

library(latex2exp) 

plt = plt + ylab(TeX("\\mathcal_{D}")) 
plt 
+1

R圖形僅提供數學的很小的子集TeX的排版功能。如果你想要更漂亮的東西,你可能不得不求助於tikzDevice – baptiste

+0

'extrafont'軟件包可以讓你使用類似的字體(比如Lucida書法),但是你不能以編程方式在軸上的表達式中混合字體。如果它絕對需要,你可以'ggsave'作爲PDF並在Inkscape中編輯。 – Brian

+0

如果你看看'latex2exp'中的[implementation(line 77)](https://github.com/stefano-meschiari/latex2exp/blob/master/R/latex2exp.R),你可以看到它的絕大部分將TeX符號逐一映射到R符號上。不幸的是,添加LaTeX功能並不像添加'\ usepackage'調用那麼簡單。從'mathcal'中添加大寫字母將需要像這張地圖或者一個很好的功能來提供所需的字符。如果關於'latex2exp'的其他一切都很好,你可以選擇擴展這個包來添加這個功能。 – mrbcuda

回答

0

下面的技巧並不是一個優雅靈活的解決方案,但在某些情況下它可能很有用。另外,我只在我的Windows 7 PC上測試過它。
希望它能幫助你。

(1)下載書法巴黎字體here
(2)安裝的字體(右鍵 - > 「安裝」)
(3)運行下述R代碼:

library(ggplot2) 

windowsFonts(
    CAL=windowsFont("Parisienne") 
) 

df <- as.data.frame(matrix(rnorm(400), ncol = 2)) 
plt <- ggplot(data = df, aes(x = V1, y = V2)) + geom_point() + 
     ylab("D") + 
     theme(axis.title.y = element_text(family = "CAL", size=20, 
             color="red", face="bold")) 
plt 

enter image description here