2015-07-10 2 views
0

У меня есть ядро ​​данных R, которое содержит строковую переменную и числовую переменную, и я хотел бы построить верхние 10 строк на основе значение числовой переменной.Постройте список/рейтинг стилей «топ-10» в R на основе числового столбца DataFrame

Я могу, конечно, получить первые 10 записей довольно просто:

top10_rank <- rank[order(rank$numerical_var_name),] 

Мой первый подход к попытке визуализировать это было просто попытка построить это как:

ggplot(data=top10_rank, aes(x = top10_rank$numerical_var_name, y = top10_rank$string_name)) + geom_point(size=3) 

И к в первом приближении это «работает» - проблема в том, что строки на оси y отсортированы по алфавиту, а не по численному значению.

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

Любые идеи очень ценятся!

ответ

2

Маркировка по оси Y может быть отсортирована в алфавитном порядке, но точки нарисованы по порядку (слева направо) в верхнем десятичном кадре. Вам нужно изменить порядок оси y. Добавьте это к вашему вызову ggplot + scale_y_discrete(limits=top10_rank$String), и он должен работать.

ggplot(data=top10_rank, aes(x = top10_rank$Number, 
y = top10_rank$String)) + geom_point(size=3) + scale_y_discrete(limits=top10_rank$String) 

Вот ссылка на большой ресурс на R графике: R Graphics Cookbook

+0

Большое спасибо - переупорядочиваем точки, так что теперь выглядит разумным. Что касается чистого результата «ранга» (т. Е. Без очков), я продолжу играть с этим. – anthr

+0

Да, когда я это сделал, на графике отображались все точки по прямой, а не по всему месту. Рад, что это сработало! –