R 如何加减±;打印中的文本标签出错?

R 如何加减±;打印中的文本标签出错?,r,ggplot2,heatmap,geom-text,R,Ggplot2,Heatmap,Geom Text,我的数据如下所示: var1, var2, mean, std 1 , 2 , 3 , 4 etc.. 我想把它们绘制成一个热图,看起来像这样,但我想在每个单元格内添加文本标签,样式为:mean±std(即,平均正负误差)。在上述情况下,对于var1列=1和var2行=2,单元格中的值将为3±4,对于其他单元格,值将类似地不同 它是一个热图并不重要,它可以是指向一个点或一个条的标签,我只想生成标签,这样我就可以得到每个标签的字符串“mean±std”:3±4。在我的例子中,我将制

我的数据如下所示:

var1, var2, mean, std
1    , 2   , 3   , 4
etc..
我想把它们绘制成一个热图,看起来像这样,但我想在每个单元格内添加文本标签,样式为:mean±std(即,平均正负误差)。在上述情况下,对于var1列=1和var2行=2,单元格中的值将为3±4,对于其他单元格,值将类似地不同

它是一个热图并不重要,它可以是指向一个点或一个条的标签,我只想生成标签,这样我就可以得到每个标签的字符串“mean±std”:3±4。在我的例子中,我将制作一个热图,其中颜色基于平均值,例如:


谢谢大家!

您可以使用geom_文本创建标签,并粘贴平均值和sd值,以正负号作为分隔符(\u00B1是相应的unicode):


dat您可以通过设置
parse=TRUE
geom_text
中使用plotmath。根据@beetroot的回答:

ggplot(dat) +
  geom_text(aes(x = 1, y = 2.5, 
                label = paste(mean, std, sep = "%+-%")), 
            parse = TRUE)

多亏了贝特鲁特和罗兰的回答,这是我最后的代码(加上一些铃铛和口哨):


p1谢谢您,这是正确的想法,但不知何故,“%+-%”不起作用,但u/beetroot的“\u00B1”起作用。如果“不起作用”,您可能使用的是ggplot2的旧版本。
ggplot(dat) +
  geom_text(aes(x = 1, y = 2.5, 
                label = paste(mean, std, sep = "%+-%")), 
            parse = TRUE)
p1 <- ggplot(r_output, aes(var1, var2)) + 
    geom_tile(aes(fill = mean))+
    geom_text(aes(fill = mean, label = paste(round(mean, 2), round(std, 2), sep = "\u00B1")), size = 2)+            
    scale_fill_gradient(low = "red", high = "blue") +