如何在图中的文本标签中添加正负±误差?
How to add plus-minus ± error to text label in plot?
我的数据是这样的:
var1, var2, mean, std
1 , 2 , 3 , 4
etc..
我想将这些绘制成一个看起来像这样的热图,但我想在每个单元格内添加文本标签,格式如下:平均值±标准差(即平均值加减误差)。在上述情况下,对于 var1 列 = 1 和 var2 行 = 2,单元格中的值将为 3±4,其他单元格的值也类似。
它是热图并不重要,它可以是点或条的标签,我只想生成标签以便为每个标签获取字符串 "mean±std":3 ±4。就我而言,我将制作一个热图,其中颜色基于均值,例如此处:
谢谢!
您可以使用 geom_text 创建标签并使用加减号作为分隔符粘贴平均值和标准差值(\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")))
您可以通过设置 parse = TRUE
在 geom_text
中使用 plotmath。基于@beetroot 的回答:
ggplot(dat) +
geom_text(aes(x = 1, y = 2.5,
label = paste(mean, std, sep = "%+-%")),
parse = TRUE)
感谢 beetroot 和 Roland 的回答,这是我的最终代码(加上一些附加功能):
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") +
我的数据是这样的:
var1, var2, mean, std
1 , 2 , 3 , 4
etc..
我想将这些绘制成一个看起来像这样的热图,但我想在每个单元格内添加文本标签,格式如下:平均值±标准差(即平均值加减误差)。在上述情况下,对于 var1 列 = 1 和 var2 行 = 2,单元格中的值将为 3±4,其他单元格的值也类似。
它是热图并不重要,它可以是点或条的标签,我只想生成标签以便为每个标签获取字符串 "mean±std":3 ±4。就我而言,我将制作一个热图,其中颜色基于均值,例如此处:
谢谢!
您可以使用 geom_text 创建标签并使用加减号作为分隔符粘贴平均值和标准差值(\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")))
您可以通过设置 parse = TRUE
在 geom_text
中使用 plotmath。基于@beetroot 的回答:
ggplot(dat) +
geom_text(aes(x = 1, y = 2.5,
label = paste(mean, std, sep = "%+-%")),
parse = TRUE)
感谢 beetroot 和 Roland 的回答,这是我的最终代码(加上一些附加功能):
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") +