如何绘制一个三个堆栈的条形图进行一系列分配?

时间:2013-03-08 07:37:18

标签: r plot stack

我有一系列数据

x<-rnorm(1000)

我需要在三个堆栈中绘制一个水平条形图,其中15%,70%和15%的数据如图所示。

enter image description here

我如何在R中绘制这个?

2 个答案:

答案 0 :(得分:2)

barplot(table(cut(x, breaks=quantile(x, probs=c(0,0.15, 0.85, 1) ) )  ) )

enter image description here

这是一个水平图(我不称之为“堆积条形图”

plot(x=x, y=rep(1,length(x)) , type="n")
segments( x0=c( min(z), quantile(z, probs=c(0,0.15, 0.85) ) ), 
             x1 =quantile(z, probs=c(0,0.15, 0.85, 1) ) , 
             y0=rep(1, 4), y1=rep(1,4) , col=c("red", "green", "blue"), lwd=30, lend=10)

答案 1 :(得分:1)

这是一个有效的例子:

x1 <- table(cut(x, breaks = quantile(x, probs = c(0,0.15, 0.85, 1))))

png(filename="~/test.png", width = 8, height = 2.5, units="in", res = 72)
barplot(
  as.matrix(x1), horiz = TRUE, 
  col = c("lightblue", "yellow", "palegreen"),
  axes = FALSE)
axis(1, at = c(0, cumsum(x1)), labels = c(0, 15, 85, 100))
dev.off()

这将在您的工作目录中创建一个名为“test.png”的png文件,如下所示。

enter image description here