在GGR图中对x轴进行排序

在GGR图中对x轴进行排序,r,R,我使用以下数据和代码: ddf = structure(list(number = 1:20, words = structure(c(10L, 20L, 17L, 6L, 5L, 13L, 11L, 1L, 8L, 15L, 3L, 18L, 16L, 7L, 4L, 14L, 12L, 2L, 9L, 19L), .Label = c("eight", "eighteen", "eleven", "fifteen", "five", "four", "fourteen", "nine"

我使用以下数据和代码:

ddf = structure(list(number = 1:20, words = structure(c(10L, 20L, 17L, 
6L, 5L, 13L, 11L, 1L, 8L, 15L, 3L, 18L, 16L, 7L, 4L, 14L, 12L, 
2L, 9L, 19L), .Label = c("eight", "eighteen", "eleven", "fifteen", 
"five", "four", "fourteen", "nine", "nineteen", "one", "seven", 
"seventeen", "six", "sixteen", "ten", "thirteen", "three", "twelve", 
"twenty", "two"), class = "factor"), value = c(0.34420683956705, 
0.612443619407713, 0.7042224498, 0.832921771565452, 0.351153316209093, 
0.622333734529093, 0.932609781855717, 0.584015318658203, 0.968014082405716, 
0.141673753270879, 0.787956288317218, 0.852732613682747, 0.411922389175743, 
0.781018695561215, 0.474310273537412, 0.701303839450702, 0.339094886090606, 
0.442493645008653, 0.941094532376155, 0.135925917653367)), .Names = c("number", 
"words", "value"), row.names = c(NA, -20L), class = "data.frame")

 head(ddf)
  number words     value
1      1   one 0.3442068
2      2   two 0.6124436
3      3 three 0.7042224
4      4  four 0.8329218
5      5  five 0.3511533
6      6   six 0.6223337


ggplot(ddf)+geom_bar(aes(x=words, y=value), stat="identity")

但是,我需要按照正确的数字顺序排列x轴因子(“单词”)(x轴上的“一”、“二”、“三”等)。我怎样才能做到这一点?感谢您的帮助。

诀窍是在因子创建过程中指定标签顺序

> lix = order(ddf$value)
> lvls = ddf$words[lix]
> ddf$words = factor(ddf$words, levels=lvls)
> ggplot(ddf) + geom_bar(aes(x=words, y=value), stat='identity')
> 

上述示例按照数据表中的
列对条形图进行排序。如果您需要根据标签的字面含义对条形图进行排序,则必须手动指定:

> lvls = c('one', 'two', .....)

诀窍是在因子创建期间指定标签顺序

> lix = order(ddf$value)
> lvls = ddf$words[lix]
> ddf$words = factor(ddf$words, levels=lvls)
> ggplot(ddf) + geom_bar(aes(x=words, y=value), stat='identity')
> 

上述示例按照数据表中的
列对条形图进行排序。如果您需要根据标签的字面含义对条形图进行排序,则必须手动指定:

> lvls = c('one', 'two', .....)

这将按数字列中的值重新排序

library(ggplot2)
ddf$words <- reorder(ddf$words,ddf$number)
ggplot(ddf)+geom_bar(aes(x=words, y=value), stat="identity")
库(ggplot2)

ddf$words这将根据数字列中的值重新排序

library(ggplot2)
ddf$words <- reorder(ddf$words,ddf$number)
ggplot(ddf)+geom_bar(aes(x=words, y=value), stat="identity")
库(ggplot2)

ddf$单词编号。我想按数字顺序按单词排序:1、2、3、4等@rnso请参阅我的编辑。此外,您可能需要编辑您的问题以使其更清晰编辑我的问题。我不想手动输入‘一’、‘二’、‘三’等。我可以使用numeber列(1,2,3,…)来执行此操作吗?然后查看jihoward的回答否。我想按数字顺序按单词排序:1、2、3、4等@rnso查看我的编辑。此外,您可能需要编辑您的问题以使其更清晰编辑我的问题。我不想手动输入‘一’、‘二’、‘三’等。我可以使用numeber列(1,2,3,…)来执行此操作吗?然后查看jihoward的AnswerUpper命令并没有改变我的图形。这里的reorder命令在我的系统上也不像在我的另一篇文章中那样起作用:上面的代码根据
ddf$number
中的值对系数
ddf$words
进行重新排序。如果这不是您想要的,请您在编辑您的问题时以不同的方式进行解释。由于某些原因,如我在上面的评论中所述,重新排序功能在我的系统上不起作用。还有其他方法吗?上面的命令并没有改变我的图表。这里的reorder命令在我的系统上也不像在我的另一篇文章中那样起作用:上面的代码根据
ddf$number
中的值对系数
ddf$words
进行重新排序。如果这不是您想要的,请您在编辑您的问题时以不同的方式进行解释。由于某些原因,如我在上面的评论中所述,重新排序功能在我的系统上不起作用。还有其他方法吗?