将 mean/mode 值的自定义图例添加到 ggplot 密度图
Add custom legend of mean/mode values to ggplot density plot
我正在尝试向通过 ggplot2 生成的密度图添加图例,但我没有添加示例标签,而是试图用数字填充图例。
library(ggplot2)
library(modeest)
set.seed(9)
d1=as.data.frame(rnorm(1000,mean=0.33,sd=0.138))
names(d1)=c("value")
mean_d1=mean(d1$value) #Mean=0.33081
mode_d1=mlv(d1$value,method="shorth")[1] #Mode=0.35191
gg=ggplot(d1,aes(value))
gg +
geom_density()
这使得图表如下:
有没有办法添加一个图例(嵌入在右上角),其中包含我已经计算出的均值和众数?
您可以使用 annotate
向 ggplot
添加文本:
p + annotate("text", x = 0.6, y = 3, label = paste ("Mean ==", mean_d1), parse = TRUE) +
annotate("text", x = 0.6, y = 2.8, label = paste ("Mode ==", mode_d1), parse = TRUE)
更新:
如果你想将它用于不同的地块,请看下面;
max_y <- ggplot_build(gg)$layout$panel_ranges[[1]]$y.range[2]
max_x <- ggplot_build(gg)$layout$panel_ranges[[1]]$x.range[2]
gg +
annotate("text", x = max_x * 0.85, y = max_y * 0.95, label = paste
("Mean ==", round(mean_d1, digits=3)), parse = TRUE) +
annotate("text", x = max_x * 0.85, y = max_y * 0.9, label = paste
("Mode ==", round(as.numeric(mode_d1), digits=3)), parse = TRUE)
我正在尝试向通过 ggplot2 生成的密度图添加图例,但我没有添加示例标签,而是试图用数字填充图例。
library(ggplot2)
library(modeest)
set.seed(9)
d1=as.data.frame(rnorm(1000,mean=0.33,sd=0.138))
names(d1)=c("value")
mean_d1=mean(d1$value) #Mean=0.33081
mode_d1=mlv(d1$value,method="shorth")[1] #Mode=0.35191
gg=ggplot(d1,aes(value))
gg +
geom_density()
这使得图表如下:
有没有办法添加一个图例(嵌入在右上角),其中包含我已经计算出的均值和众数?
您可以使用 annotate
向 ggplot
添加文本:
p + annotate("text", x = 0.6, y = 3, label = paste ("Mean ==", mean_d1), parse = TRUE) +
annotate("text", x = 0.6, y = 2.8, label = paste ("Mode ==", mode_d1), parse = TRUE)
更新:
如果你想将它用于不同的地块,请看下面;
max_y <- ggplot_build(gg)$layout$panel_ranges[[1]]$y.range[2]
max_x <- ggplot_build(gg)$layout$panel_ranges[[1]]$x.range[2]
gg +
annotate("text", x = max_x * 0.85, y = max_y * 0.95, label = paste
("Mean ==", round(mean_d1, digits=3)), parse = TRUE) +
annotate("text", x = max_x * 0.85, y = max_y * 0.9, label = paste
("Mode ==", round(as.numeric(mode_d1), digits=3)), parse = TRUE)