Я следующий кадр данных:R - порядок легенда ggplot
Author<-c("University","Office", "School","University","Office", "School","University","Office", "School")
Typ<-c("Text", "Text", "Text","Data", "Data","Data", "List", "List", "List")
Number<-c("3","1","6","4","4","2","8","1","1")
df<-data.frame(Typ,Author,Number)
Если я применяю:
ggplot(df, aes(x=Author, y=Number, fill=Typ)) +
geom_bar(stat='identity') + coord_flip()
затем я получаю столбчатый участок, где Бруски заказов в порядке рамки даты, то есть Text
, Data
, List
, но легенда находится в алфавитном порядке. Есть ли какая-либо (не грубая сила, то есть вручную), такая, что я могу переставить легенду также в «заданном» порядке df, то есть в Text
, Data
, List
?
(только для уточнения). У меня есть набор данных, которые также больше в том смысле, что векторы «Typ» (которые также различаются в каждом кадре данных) имеют больше записей, порядок которых не должен изменяться а также отображаться в легенде.Я написал рутину, которая отображает все эти фреймы данных, поэтому я не могу менять легенды вручную - я действительно ищу обычные решения)
Легенда не обязательно в алфавитном порядке, но это упорядоченный по уровням фактора: 'ДФ $ Typ'. Одним из способов изменения легенды является изменение порядка уровней факторов, например. 'df $ Typ <- factor (df $ Typ, levels = rev (levels (df $ Typ)))'. – lukeA
Если вы не хотите напрямую изменять свои данные, вы можете попробовать: ggplot (df, aes (x = Author, y = Number, fill = factor (Typ, levels = c ('Text', 'Data', 'List ')) )) + geom_bar (stat =' identity ') + coord_flip() ggplot (df, aes (x = Author, y = Number, fill = factor (Typ, levels = c (' Text ',' Data ',' List ')) +)) + geom_bar (stat =' identity ') + coord_flip() ' –
Привет! Спасибо за ваши ответы - нет, мой реальный фрейм данных намного больше (гораздо больше «typ», поэтому для ручной настройки уровней, к сожалению, нет опции. К сожалению, также первый подход меняет порядок typ, который не то, что мне нужно. – chris17