控制ggplot2中的栏位置

时间:2014-05-05 14:17:51

标签: r ggplot2

我创建了略微偏移的并排条形图,我希望能够控制哪个条形图位于前面,哪个条形图位于后面。我曾尝试改变因素的顺序,但它始终将相同的因素放在前面。我想将学校变量放在前面,并将董事会数据放在后面,作为参考点。当我运行代码时,R总是将学校数据放在后面。

library (ggplot2
library(reshape)

school <- c(92, 90, 88)
board <- c(87, 88, 88)
grade <- c("Grade 1", "Grade 2", "Grade 3")
df <- melt (data.frame (school, board, grade))
ggplot (df, aes(x=grade, y=value, fill=variable)) + geom_bar (stat="identity", position =position_dodge(width=.5))

我确定它很简单,但无法理解。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我知道你说你改变了因素的水平而且它没有用。但是,当我改变它的水平时它确实有效。试试relevel()

library (ggplot2)
library(reshape)

school <- c(92, 90, 88)
board <- c(87, 88, 88)
grade <- c("Grade 1", "Grade 2", "Grade 3")
df <- melt (data.frame (school, board, grade))
df

#releveling factor
levels(df$variable)
df$variable <- relevel(df$variable, ref="board")

ggplot (df, aes(x=grade, y=value, fill=variable)) +
  geom_bar (stat="identity", position =position_dodge(width=.5))