0

我有一系列数据

x<-rnorm(1000)

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

在此处输入图像描述

我如何在 R 中绘制这个?

4

2 回答 2

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

在此处输入图像描述

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

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)
于 2013-03-08T07:53:18.723 回答
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 文件,如下所示。

在此处输入图像描述

于 2013-03-08T08:16:05.373 回答