我已经搜索了多个线程,但尚未找到解决方案。
我有一个包含40多个变量的geom_bar图。我创建了一个单独的df,以根据特定类别标记每个变量,并为该类别分配颜色。在40多个变量中,图中包含4种颜色/类别。
我希望该图例显示类别的颜色,而不是各个变量的颜色。我知道我可以通过在原始df中使用颜色/类别来完成此操作,但是,我希望能够在许多不同的项目中使用颜色/类别参考df,而不必总是在绘图df中添加列以进行标记类别和颜色。
这里是一个示例,其中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)
library(ggplot2)
variable = c("abc", "def", "ghi", "jkl","mno", "pqr", "stu")
tag = c("A", "B", "C", "A","B", "A", "B")
# Plotting df
df = data.frame(variable, value=c(1:7), tag)
ggplot(df)+
geom_bar(aes(x=variable, y=value, fill=tag),stat = "identity")+
scale_fill_manual(values = c("A" = "red", "B" = "blue", "C" = "orange"),
labels = c("red", "blue", "orange"))
由reprex package(v0.3.0)在2020-05-20创建