【发布时间】:2012-03-22 01:25:23
【问题描述】:
我最喜欢的基本图形技巧之一是比尔·邓拉普的皮卡。能够将数值(或任何值)放置在条形图中的条形上方(我不使用它,但偶尔会使用它,但喜欢它)。
mtcars2 <- mtcars[order(-mtcars$mpg), ]
par(cex.lab=1, cex.axis=.6,
mar=c(6.5, 3, 2, 2) + 0.1, xpd=NA) #shrink axis text and increas bot. mar.
barX <- barplot(mtcars2$mpg,xlab="Cars", main="MPG of Cars",
ylab="", names=rownames(mtcars2), mgp=c(5,1,0),
ylim=c(0, 35), las=2, col=mtcars2$cyl)
mtext(side=2, text="MPG", cex=1, padj=-2.5)
text(cex=.5, x=barX, y=mtcars2$mpg+par("cxy")[2]/2, mtcars2$hp, xpd=TRUE)
这给了你:
我希望能够在 ggplot 中使用多面条形图进行相同类型的注释。显然,这些值还必须由您刻面绘制的两个变量相同,以便您可以使用 ftable 获得它们。我想采用下面的 ftable 结果(对于非零值)并将它们放在各自的条上方。
library(ggplot2)
mtcars2 <- data.frame(id=1:nrow(mtcars), mtcars[, c(2, 8:11)])
mtcars2[, -1] <- lapply(mtcars2[, -1], as.factor)
with(mtcars2, ftable(cyl, gear, am))
ggplot(mtcars2, aes(x=cyl)) + geom_bar() +
facet_grid(gear~am)
这对我来说似乎很难,但也许会比我想象的要容易。提前感谢您考虑这个问题。
【问题讨论】:
-
@ben 我想你已经找到了解决方案,但我无法将其连接到
facet_grid -
有趣的是,有些人认为这种标签会使显示更加混乱,应该避免:stackoverflow.com/q/6644997/1036500 和 stackoverflow.com/a/9318468/1036500