使用以下代码,我得到如下直方图
x <- rnorm(100)
hist(x,col="gray")
我该怎么做才能将条形显示为堆叠的矩形(通过它们的轮廓可见,而不是填充颜色的变化)而不是统一的列?每个矩形代表一个频率,例如 1,尽管我希望能够通过一个参数来改变它。
使用以下代码,我得到如下直方图
x <- rnorm(100)
hist(x,col="gray")
我该怎么做才能将条形显示为堆叠的矩形(通过它们的轮廓可见,而不是填充颜色的变化)而不是统一的列?每个矩形代表一个频率,例如 1,尽管我希望能够通过一个参数来改变它。
从这个问题的答案(h / t Vincent Zoonekynd)。
x <- rnorm(100)
hist(x,col="gray")
abline(h=seq(5,40,5),col="white")
这是一个帮助您入门的函数(它实际上是tkBrush
对包中函数的部分示例的修改TeachingDemos
):
rechist <- function(x,...){
tmp <- hist(x,plot=F)
br <- tmp$breaks
w <- as.numeric(cut(x,br,include.lowest=TRUE))
sy <- unlist(lapply(tmp$counts,function(x)seq(length=x)))
my <- max(sy)
sy <- sy/my
my <- 1/my
sy <- sy[order(order(x))]
plot.new()
plot.window(xlim=range(br), ylim=c(0,1))
rect(br[w], sy-my, br[w+1], sy,
border=TRUE, col='grey')
rect(br[-length(br)], 0, br[-1], tmp$counts*my)
axis(1)
}
rechist( iris$Petal.Length )