在ggplot中对分类变量进行排序

时间:2011-05-06 20:40:23

标签: r ggplot2

美好的一天,我希望使用ggplot2生成图形,但不使用其默认的分类变量排序(按字母顺序排列,在脚本中:字母),而是使用连续变量的相关值(在脚本中:数字)。

以下是一个示例脚本:

library(ggplot2)
trial<-data.frame(letters=letters, numbers=runif(n=26,min=1,max=26))
trial<-trial[sample(1:26,26),]
trial.plot<-qplot(x=numbers, y=letters, data=trial)
trial.plot
trial<-trial[order(trial$numbers),]
trial.plot<-qplot(x=numbers, y=letters, data=trial)
trial.plot
trial.plot+stat_sort(variable=numbers)

最后一行不起作用。

2 个答案:

答案 0 :(得分:8)

我很确定stat_sort不存在,所以它不会像您认为的那样工作也就不足为奇了。幸运的是,reorder()函数根据第二个变量的值重新排序分类变量的级别。我认为这应该做你想要的:

trial.plot <- qplot( x = numbers, y = reorder(letters, numbers), data = trial)
trial.plot

enter image description here

答案 1 :(得分:0)

如果您可以更具体地了解您希望它的外观,我认为社区可以改进我的答案,无论您正在寻找什么:

qplot(numbers, reorder(letters, numbers), data=trial)