我有一系列数据
x<-rnorm(1000)
我需要在三个堆栈中绘制一个水平条形图,其中包含 15%、70% 和 15% 的数据,如图所示。
我如何在 R 中绘制这个?
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)
这是一个工作示例:
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 文件,如下所示。