Search code examples
rplotmeandensity-plot

Add calculated mean value to vertical line in plot in R


I have created a density plot with a vertical line reflecting the mean - I would like to include the calculated mean number in the graph but don't know how (for example the mean 1.2 should appear in the graph).

beta_budget[,2] is the column which includes the different numbers of the price.

windows()
plot(density(beta_budget[,2]), xlim= c(-0.1,15), type ="l", xlab = "Beta Coefficients", main = "Preis", col = "black") 
abline(v=mean(beta_budget[,2]), col="blue")
legend("topright", legend = c("Price", "Mean"), col = c("black", "blue"), lty=1, cex=0.8)

I tried it with the text command but it didn't work...

Thank you for your advise!


Solution

  • Something along these lines:

    Data:

    set.seed(123)
    df <- data.frame(
      v1 = rnorm(1000)
    )
    

    Draw histogram with density line:

    hist(df$v1, freq = F, main = "")
    lines(density(df$v1, kernel = "cosine", bw = 0.5))
    abline(v = mean(df$v1), col = "blue", lty = 3, lwd = 2)
    

    Include the mean as a text element:

    text(mean(df$v1),                                       # position of text on x-axis
         max(density(df$v1)[[2]]),                          # position of text on y-axis
         mean(df$v1),                                       # text to be plotted
         pos = 4, srt = 270, cex = 0.8, col = "blue")       # some graphical parameters
    

    enter image description here