Ситуация следующая:
У меня много имен и много соответствующих кодов для этих имен.
Все разные имена имеют уникальный код, но не все разные коды имеют уникальное имя.
Это создало проблему при построении данных, поскольку мне нужно group_by(code)
и reorder(name,code)
при построении, но коды бессмысленны, и я хочу отобразить имена. Поскольку некоторые коды имеют общие имена, это создает небольшую проблему.
Пример для иллюстрации ниже:
library(tidyverse)
set.seed(1)
# example df
df <- tibble("name" = c('apple','apple','pear','pear','pear',
'orange','banana','peach','pie','soda',
'pie','tie','beer','picnic','cigar'),
"code" = seq(1,15),
"value" = round(runif(15,0,100)))
df %>%
ggplot(aes(x=reorder(name,value)))+
geom_bar(aes(y=value),
stat='identity')+
coord_flip()+
ggtitle("The axis labels I want, but the order I don't")
df %>%
ggplot(aes(x=reorder(code,value)))+
geom_bar(aes(y=value),
stat='identity')+
coord_flip()+
ggtitle("The order I want, but the axis labels I don't")
Не совсем уверен, как заставить ggplot сохранить отображение и порядок второго графика, при этом можно заменить метки оси именами из первого графика.