【发布时间】:2020-09-06 04:17:32
【问题描述】:
我已经搜索了几个线程,但还没有找到解决方案。
我有一个包含 40 多个变量的 geom_bar 图。我创建了一个单独的 df 来根据特定类别标记每个变量,并为该类别分配颜色。在 40 多个变量中,图中包含 4 种颜色/类别。
我希望图表的图例显示类别的颜色,而不是单个变量。我知道我可以通过在原始 df 中使用颜色/类别来实现这一点,但是,我希望能够在许多不同的项目中使用颜色/类别参考 df,并且避免总是必须在绘图 dfs 中添加列来标记类别和颜色。
这是一个示例,其中 df 是绘制的数据,df_cols 类似于我的类别/颜色 df。理想情况下,图例将具有“A=red, B=Blue, C=orange”而不是变量名。
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)
【问题讨论】:
-
你的描述让我有点困惑。你能模拟一个你想要达到的目标的例子吗?
标签: r ggplot2 colors legend manual