/ / Come ombreggiare un grafico usando la curva () in R - r, grafico, grafico, area

Come ombreggiare un grafico usando curve () in R - r, grafico, grafico, area

Sto tracciando la normale distribuzione standard.

curve(dnorm(x), from=-4, to=4,
main = "The Standard Normal Distibution",
ylab = "Probability Density",
xlab = "X")

Per motivi pedagogici, voglio oscurare l'area sotto un certo quantile di mia scelta. Come posso fare questo?

risposte:

4 per risposta № 1

Se vuoi usarlo curve e trama di base, quindi puoi scrivere una piccola funzione con te stesso polygon:

colorArea <- function(from, to, density, ..., col="blue", dens=NULL){
y_seq <- seq(from, to, length.out=500)
d <- c(0, density(y_seq, ...), 0)
polygon(c(from, y_seq, to), d, col=col, density=dens)
}

Segue un piccolo esempio:

curve(dnorm(x), from=-4, to=4,
main = "The Standard Normal Distibution",
ylab = "Probability Density",
xlab = "X")

colorArea(from=-4, to=qnorm(0.025), dnorm)
colorArea(from=qnorm(0.975), to=4, dnorm, mean=0, sd=1, col=2, dens=20)

inserisci la descrizione dell'immagine qui