2017-11-28 6 views
3

数学記号を等高線ラベルに渡すことができません。これは可能ですか?等高線ラベルに数学記号を追加するには

例:ここでは

image(volcano) 
contour(volcano, level=150, add=TRUE, label = "150") # works 
contour(volcano, level=120, add=TRUE, label = expression(alpha)) # doesn't work 
contour(volcano, level=110, add=TRUE, label = bquote(alpha)) # doesn't work 
text(0.5,0.5, labels = bquote(alpha == .(120))) # works 
text(0.2,0.5, labels = expression(paste(alpha, "= 150"))) # works 

enter image description here

+0

わかりませんが、あなたはユニコードを試してみましたか? –

答えて

3

は、ソリューションです:

image(volcano); 
levels <- c(150, 120, 110); 
for (i in 1:length(levels)) { 
    contour(
     volcano, add = TRUE, 
     level = levels[i], 
     label = sprintf("a = %i", levels[i]), 
     vfont = c("sans serif symbol", "plain"), labcex = 1); 
} 

enter image description here

ここでキーの代わりにHersheyベクトルフォントを強制的にvfontを使用することです現在のフォントファミリー。次に、 "HersheySansSymbol"フォントファミリを使用して、関数引数vfont = c("sans serif symbol", "plain")を使用して、 "a"を "α"とタイプセットします。これは少し隠されていますが、Hersheyフォントの詳細は?Hersheyにあります。

PS。 vfont = c("serif symbol", "bold")で太字のseriffedフォントを使用することもできます。

+0

優秀 - 確かに隠されていました。もっと簡単には、ギリシャのシンボルを直接呼び出すことができます( 'demo(Hershey)'で概説されています): 'contour(volcano、level = 120、add = TRUE、label = paste0(" \\ * a = "、120)、labcex = 1) ' –

関連する問題