Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2中的控制棒位置_R_Ggplot2 - Fatal编程技术网

R ggplot2中的控制棒位置

R ggplot2中的控制棒位置,r,ggplot2,R,Ggplot2,我正在创建有轻微偏移的并排条形图,我希望能够控制哪个条形在前面,哪个在后面。我尝试过改变因子的顺序,但是它总是把相同的因子放在前面。我想把school变量放在前面,把board数据放在后面,作为参考点。当我运行代码R时,总是将学校数据放在后面 library (ggplot2 library(reshape) school <- c(92, 90, 88) board <- c(87, 88, 88) grade <- c("Grade 1", "Grade 2", "Gra

我正在创建有轻微偏移的并排条形图,我希望能够控制哪个条形在前面,哪个在后面。我尝试过改变因子的顺序,但是它总是把相同的因子放在前面。我想把school变量放在前面,把board数据放在后面,作为参考点。当我运行代码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))

我相信这很简单,但我想不出来。任何帮助都将不胜感激

我知道你说过你改变了因子的水平,但它不起作用。但是,当我改变水平时,它确实起了作用。尝试重新升级

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))

格雷格:是的,我不明白。但是一个难看的解决办法是重新定义数据的级别和顺序。ie df$变量当我反转因子水平时,板栏是红色的,标在学校栏后面,学校栏是蓝色的。@joran;我同意OP的问题;反向因子水平改变了酒吧的颜色,但学校仍然落后。因此难看的解决方法谢谢,你的解决方案非常有效。您可能想将其作为答案添加。@Greg;很高兴它能起作用,但这并不是一个真正的答案,因为有些奇怪的事情正在发生,我不明白-改变水平应该改变酒吧。您使用的是什么R版本。我在ubuntuThanks上使用Rv3.1 32位,但得到了相同的结果。user20650提供的解决方案似乎已经成功了。