我的数据如下:
var1, var2, mean, std
1 , 2 , 3 , 4
etc..
我想将这些绘制成一个看起来像这样的热图,但我想在每个单元格中添加文本标签,以这种方式:mean±std(即mean plus minus error)。在上面的例子中,对于var1 column = 1和var2 row = 2,单元格中的值将是3±4,对于其他单元格,值也是类似的不同值。
它是一个热图并不重要,它可能是一个点或一个条的标签,我只想生成标签,以便我得到每个标签的字符串“mean±std”:3±4 。就我而言,我将制作一个热图,其中颜色基于均值的值,例如:https://stackoverflow.com/a/14290705/1504411
谢谢!
答案 0 :(得分:4)
您可以通过设置geom_text
在parse = TRUE
中使用plotmath。根据@ beetroot的回答:
ggplot(dat) +
geom_text(aes(x = 1, y = 2.5,
label = paste(mean, std, sep = "%+-%")),
parse = TRUE)
答案 1 :(得分:2)
您可以使用geom_text创建标签,并使用加号 - 减号作为分隔符粘贴均值和sd值(\ u00B1是相应的unicode):
dat <- data.frame(var1 = 1, var2 = 2, mean = 3, std = 4)
ggplot(dat) +
geom_text(aes(x = 1, y = 2.5, label = paste(mean, std, sep = "\u00B1")))
答案 2 :(得分:1)
感谢甜菜根和罗兰的回答,这是我的最终代码(加上一些花里胡哨的东西):
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") +