如何将数学符号添加到轮廓标签

时间:2017-11-28 08:37:06

标签: r visualization contour

我似乎无法将数学符号传递给轮廓标签。这可能吗?

示例:

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

1 个答案:

答案 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

这里的关键是使用vfont来强制Hershey矢量字体而不是当前的字体系列。然后,您可以使用“HersheySansSymbol”字体系列将“a”排版为“α”,方法是使用contour函数参数vfont = c("sans serif symbol", "plain")。它有点隐藏,但有关Hershey字体的更多细节可以在?Hershey中找到。

PS。您还可以使用带有vfont = c("serif symbol", "bold")的seriffed粗体字体。