我想利用像“多边形”这样的功能来填充曲线下的区域,但我不想使用颜色而是使用窄的平行线(如果倾斜则更好)。
这可能吗?
答案 0 :(得分:3)
使用density
和angle
参数可以在polygon()
中实现
(即阅读手册)
x=seq(-7,10,length=200)
y1=dnorm(x,mean=0,sd=1)
plot(x,y1,type="l",lwd=2,col="red")
y2=dnorm(x,mean=3,sd=2)
lines(x,y2,type="l",lwd=2,col="blue")
polygon(x,pmin(y1,y2), density = 10, angle = -45)
从(Shaded area under two curves using R)
调整 MINOR
答案 1 :(得分:1)
目前尚不清楚狭窄的平行线是什么意思。但是可以用一组以一定角度绘制的线填充多边形,并在线之间具有特定的间隔。 密度参数控制线条之间的间距(以每英寸线数为单位),角度参数控制线条的角度。她举例说明了由2个多边形的交集定义的区域:
plot(NA,xlim=c(0,1),ylim=c(0,1), xaxs="i",yaxs="i") # Empty plot
a <- curve(x^2-0.25, add = TRUE) # First curve
b <- curve(0.5-x^4, add = TRUE) # Second curve
names(a) <- c('xA','yA')
names(b) <- c('xB','yB')
with(as.list(c(b,a)),{
id <- yB<=yA
# b<a area
polygon(x = c(xB[id], rev(xA[id])),
y = c(yB[id], rev(yA[id])),
density=10, angle=60, border=NULL)
# a>b area
polygon(x = c(xB[!id], rev(xA[!id])),
y = c(yB[!id], rev(yA[!id])),
density=10, angle=30, border=NULL)
})