我尝试在ggplot中创建双向条形图,其中轴标签和轴上方和下方的数据标签均为正。因此,例如,如果您的数据是:
myData <- data.frame(category = c("yes", "yes", "no", "no"), month = c('Jan', 'Feb', 'Jan', 'Feb'), values = c(6, 5, 4, 3))
我想要两列,一列用于一月,一列用于二月,其中“yes”值显示为带有正轴和数据标签的向上的针杆,而“no”值也指向正轴和数据标签的向下的针杆。它们之间将有一个“0”值栏。这在ggplots中可行吗?如果可以,如何实现?谢谢。
最佳答案
您是否正在寻找这样的东西?我们可以将“no”作为否定值传递,但是让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)
关于r - 双向条形图,两侧均带有正号ggplot2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38085590/