Сортировка категориальных переменных в ggplot

Добрый день, я хочу создать графику, используя ggplot2, но не используя сортировку по умолчанию категориальной переменной (в алфавитном порядке, в script: letters), но используя связанное значение непрерывной переменной (в script: number) .

вот пример скрипта:

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 ответов


уверен stat_sort не существует, поэтому неудивительно, что он не работает так, как вы думаете. К счастью, есть reorder() функция, которая упорядочивает уровень категориальной переменной в зависимости от значений второй переменной. Я думаю, что это должно сделать то, что вы хотите:

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

enter image description here


Если бы вы могли быть более конкретными о том, как вы хотите, чтобы это выглядело, я думаю, что сообщество могло бы улучшить мой ответ, независимо от того, что вы ищете:

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