R 如何使用ggplot2在堆叠条形图中不显示值0
我已经使用ggplot2创建了一个堆叠条形图,但其中一个数据值为0。是否有方法显示除0以外的所有其他数据值R 如何使用ggplot2在堆叠条形图中不显示值0,r,ggplot2,R,Ggplot2,我已经使用ggplot2创建了一个堆叠条形图,但其中一个数据值为0。是否有方法显示除0以外的所有其他数据值 dat <- data.frame(matrix(NA, ncol=3, nrow=21)) names(dat) <- c("Var1", "Var2", "Freq") dat$Var1 <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7) dat$Var2 <- rep(letters[1:7],3) dat$Fre
dat <- data.frame(matrix(NA, ncol=3, nrow=21))
names(dat) <- c("Var1", "Var2", "Freq")
dat$Var1 <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7)
dat$Var2 <- rep(letters[1:7],3)
dat$Freq <- c(3,11,1,5,9,4,1,5,4,0,7,2,5,2,3,11,11,15,5,10,10)
dat <- ddply(dat, .(Var1), transform, pos = cumsum(Freq)-0.5*Freq) ## pos is to place data values at the mid point.
ggplot(dat, aes(x=factor(Var1), y=Freq)) +
geom_bar(stat="identity", aes(fill = Var2)) +
geom_text(aes(label=Freq, y = pos), size=3)
dat如果不想修改原始数据框以将0替换为NA,可以使用geom_text()中的子集来仅使用不等于0的值
ggplot(dat, aes(x=factor(Var1), y=Freq)) +
geom_bar(stat="identity", aes(fill = Var2)) +
geom_text(data=subset(dat,Freq != 0),aes(label=Freq, y = pos), size=3)
您应该给出一个可重复的示例。不清楚哪个数据值为空:Freq还是pos?黑暗中的一个镜头:Var1
是一个因素,您已经做了一些事情删除了其中一个级别。调用dat如果您先用NA替换零值会发生什么情况,例如mydata[mydata==0]对不起,伙计们。对Stackoverflow来说是相当新的。我只是提供了一个可复制的数据@卡尔·维特霍夫,你的建议奏效了。我会这样做作为一个解决办法,但我觉得应该有另一种方法来做到这一点。谢谢