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