如何在R中使用curve()对图形着色
我正在绘制标准正态分布图如何在R中使用curve()对图形着色,r,ggplot2,plot,graph,area,R,Ggplot2,Plot,Graph,Area,我正在绘制标准正态分布图 curve(dnorm(x), from=-4, to=4, main = "The Standard Normal Distibution", ylab = "Probability Density", xlab = "X") 出于教学方面的原因,我想在我选择的某个分位数下对区域进行着色。我该怎么做 如果您想使用曲线和底图,那么您可以使用多边形自己编写一个小函数: colorArea <- function(from, to, density,
curve(dnorm(x), from=-4, to=4,
main = "The Standard Normal Distibution",
ylab = "Probability Density",
xlab = "X")
出于教学方面的原因,我想在我选择的某个分位数下对区域进行着色。我该怎么做 如果您想使用
曲线
和底图,那么您可以使用多边形
自己编写一个小函数:
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)
}
我们也可以使用以下
R
代码,以便在特定(给定)分位数下对标准正态曲线下的区域进行着色:
library(ggplot2)
z <- seq(-4,4,0.01)
fz <- dnorm(z)
q <- qnorm(0.1) # the quantile
x <- seq(-4, q, 0.01)
y <- c(dnorm(x), 0, 0)
x <- c(x, q, -4)
ggplot() + geom_line(aes(z, fz)) +
geom_polygon(data = data.frame(x=x, y=y), aes(x, y), fill='blue')
库(ggplot2)
Z
library(ggplot2)
z <- seq(-4,4,0.01)
fz <- dnorm(z)
q <- qnorm(0.1) # the quantile
x <- seq(-4, q, 0.01)
y <- c(dnorm(x), 0, 0)
x <- c(x, q, -4)
ggplot() + geom_line(aes(z, fz)) +
geom_polygon(data = data.frame(x=x, y=y), aes(x, y), fill='blue')