我似乎无法将数学符号传递给轮廓标签。这可能吗?
示例:
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
答案 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);
}
这里的关键是使用vfont
来强制Hershey矢量字体而不是当前的字体系列。然后,您可以使用“HersheySansSymbol”字体系列将“a”排版为“α”,方法是使用contour
函数参数vfont = c("sans serif symbol", "plain")
。它有点隐藏,但有关Hershey字体的更多细节可以在?Hershey
中找到。
PS。您还可以使用带有vfont = c("serif symbol", "bold")
的seriffed粗体字体。