簡體   English   中英

將平均值/模式值的自定義圖例添加到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()

這樣做了一個如下圖: 在此輸入圖像描述

有沒有辦法添加一個包含我已計算的均值和模式值的圖例(嵌入在右上角)?

您可以使用annotateggplot添加文本:

 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM