У меня есть пирамида, очень упрощенную версию которой можно нарисовать с помощью кода ниже.
#sample data
c <- c(1,2,3,1,2,3)
g <- c("Group A","Group A","Group A","Group B","Group B","Group B")
v <- c(22,34,56,12,44,21)
df <- data.frame(c,g,v)
# here is the plot
library(ggplot2)
ggplot()+
geom_bar(aes(fill=g,y=v,x=c), stat="identity", data=subset(df,g=="Group A"),
width=0.8)+
geom_bar(aes(fill=g,y=-v,x=c), stat="identity", data=subset(df,g=="Group B"),
width=0.8)+
scale_y_continuous(breaks=seq(-50,50,10),labels=abs(seq(-50,50,10)))+
coord_flip()
Это не традиционный пирамидальный график с долями населения в возрастных группах, но у меня есть веская причина для визуализации моих данных таким образом.
Теперь вот проблема: две популяции, которые я сравниваю на левой и правой стороне графика, я планирую четко обозначить аннотациями на графике.
Это один из серии подобных графиков, и одна популяция всегда будет справа, а другая слева (g в моем примере). Проблема с этим графиком заключается в том, что категории (в данном примере 'c') имеют длинные описательные имена и лучше всего пронумерованы легендой, в которой говорится, что они из себя представляют.
Итак, мне нужен сюжет, который выглядит следующим образом, но имеет легенду с указанием категорий и их дескрипторов (например, «1: Элементарно», «2:
Промежуточное звено ',' 3: Дополнительно 'и т. Д.), Которые относятся к переменной' c ', а не к значениям по умолчанию, основанным на моих двух группах населения. Кстати, в моем реальном сюжете у меня есть тринадцать баров, представляющих тринадцать различных категорий, а не три, которые у меня есть здесь.
Я попытался использовать scale_color_manual и установить эстетический аргумент для переменной c, что казалось логичным (во всяком случае, мне!), Но это ничего не делает.