Я просмотрел несколько тем, но пока не нашел решения.
У меня есть график geom_bar с более чем 40 переменными. Я создал отдельный df, чтобы пометить каждую переменную в соответствии с определенной категорией, и присвоил категории цвет. Из более чем 40 переменных в график включены 4 цвета / категории.
Я хотел бы, чтобы в легенде графика отображались цвета категорий, а не отдельных переменных. Я знаю, что могу добиться этого, имея цвета / категории в исходном df, однако я хотел бы иметь возможность использовать df-ссылку на цвет / категорию во многих разных проектах и избежать необходимости всегда добавлять столбцы в построение dfs для тегов категории и цвета.
Вот пример, где df - это данные, нанесенные на график, а df_cols сродни моей категории / цвету df. В идеале в легенде должно быть указано «A = красный, B = синий, C = оранжевый», а не имена переменных.
variable = c("abc", "def", "ghi", "jkl","mno", "pqr", "stu")
tag = c("A", "B", "C", "A","B", "A", "B")
colours = as.character(c("red", "blue", "orange", "red", "blue", "red", "blue"))
# Create colour reference df
df_cols = data.frame(variable, tag, colors = as.character(colours))
cols = df_cols$colors
cols = as.character(cols)
names(cols) = as.character(names(cols))
# Plotting df
df = data.frame(variable, value=c(1:7))
ggplot(df)+
geom_bar(aes(x=variable, y=value, fill=variable),stat = "identity")+
scale_fill_manual(values = cols)