这是我经常遇到的问题,我只需要帮助整理这个问题.我正在尝试使用ggplot绘制已排序的数据框.但是,绘图不按照我的数据框中的顺序排序.
举例来说明我的问题:
value <- c(5,8,9,11,3) Attribute <- c("a", "b", "c","d","e") my.order <- as.factor(c(4,3,2,1,5)) my.df <- data.frame(Attribute,value,my.order) my.df # Attribute value my.order #1 a 5 4 #2 b 8 3 #3 c 9 2 #4 d 11 1 #5 e 3 5
然后我通过my.order命令数据框,属性列
my.df.ordered <- my.df[with(my.df, order(my.order, Attribute)), ] my.df.ordered # Attribute value my.order #4 d 11 1 #3 c 9 2 #2 b 8 3 #1 a 5 4 #5 e 3 5
这一切都很好,但是当我尝试用ggplot绘制它时,属性按字母顺序再次排序....
ggplot(my.df.ordered, aes(x=Attribute,y=value))+ geom_point()+ coord_flip()
请帮忙?
你正在寻找这个reorder
功能:
my.order <- c(4,3,2,1,5) my.df <- data.frame(Attribute,value,my.order) ggplot(my.df, aes(x=reorder(Attribute, my.order),y=value)) + geom_point() + coord_flip()