2016-06-28 47 views
4

我试图在ggplot中创建一个双向条形图,其中轴标签和数据标签都位于轴的上方和下方,均为正数。因此,举例来说,如果你的数据是:双面条形图,双面均为正面标签ggplot2

myData <- data.frame(category = c("yes", "yes", "no", "no"), month = c('Jan', 'Feb', 'Jan', 'Feb'), values = c(6, 5, 4, 3)) 

我会希望两列,一个用于月份,一个用于月份,这里的“是”值出现了针杆与正轴和数据标签朝上,和“否”值朝下,也使用正数轴和数据标签。他们之间会有一个'0'值栏。这在ggplots中是否可行?如果是这样,那么它是如何实现的?谢谢。

回答

4

你在找这样的事吗?我们可以将“否”作为否定结果,但将ggplot显示为正值。标签也一样。

myData$values2 <- ifelse(myData$category == "no", -1 * myData$values, myData$values) 

library(ggplot2) 
ggplot(data = myData) + geom_bar(aes(x=month,y=values2,fill=category),stat="identity",position="identity") + 
         geom_text(aes(x=month,y=values2,label=abs(values2)),vjust = ifelse(myData$values2 >= 0, 0, 1)) + 
         scale_y_continuous(labels=abs) 

enter image description here

+0

这正是我要找的,非常感谢。 –

+0

作为一个跟进,我可以使Y轴都是绝对的并以美元格式化吗? –