在S中绘制带阴影区域且没有共同边界的直方图

时间:2017-06-17 10:51:47

标签: r plot histogram

我试图绘制带有阴影区域(2 X值之间)的直方图,但没有垂直公共线(断点之间的线)和abline。我有以下示例代码:

x<-rnorm(n=100, m=0, sd=1)
h<- hist(x, breaks=50)
cuts<- cut(h$breaks, c(-1, 1))
plot(h, col="green"[cuts])
abline(v=mean(x), lty=2, lwd=2)`

提前非常感谢你。

2 个答案:

答案 0 :(得分:0)

尝试此操作(从创建h开始):

np = length(h$breaks)
x = c(h$breaks[1],rep(h$breaks[-c(1,np)],rep(2,(np-2))), h$breaks[np])
y=rep(h$counts,rep(2,length(h$counts)))

现在x和y是“天际线”坐标。试试这个:

plot(h)
lines(x,y, col="red", lwd=2)

所以你的情节:

# make the plot
plot(h)
# fill the area with green fill and green outline
plot(h, col="green"[cuts], border="green"[cuts],add=TRUE)
# restore the skyline
lines(x,y)
abline(v=mean(x), lty=2, lwd=2)

,并提供:

enter image description here

答案 1 :(得分:0)

我使用了更原始的方法。我创建了两个直方图,然后,我重叠它们。

h <- hist(x, breaks=50, plot=FALSE)
cuts <- cut(h$breaks, c(-1, 1))
plot(h$breaks, c(h$counts,0) ,type="s",col="black", lwd=2)
plot(h, col="gray"[cuts], lty="blank", add=T)
abline(v=mean(x), lty=2, lwd=2)

enter image description here