繁体   English   中英

ggplot2中图例对象的手动颜色分配

[英]manual color assignment of a legend object in ggplot2

这是我的代码:

library(data.table)
library(ggplot2)

clist <- list(c(1:39), c(2:40), c(3:41))
clist.ts <- lapply(clist, function(x) ts(x, frequency = 1, start = 1978))
ind78_ymean_tsdf <- as.data.frame(clist.ts)
names(ind78_ymean_tsdf) <- c("name1", "name2", "name3")
ind78_ymean_tsdf$"Year" <- c(1978:2016)

setDT(ind78_ymean_tsdf) 
ind78_ymean_melt <- melt(ind78_ymean_tsdf, id=c("Year")) 

(ggplot(ind78_ymean_melt, aes(x=Year, y=value, color=variable)) 
  + geom_line()
  + geom_line(data=subset(ind78_ymean_melt, variable == "name1"), colour="black", size=1.5)
  + labs(title="Development of the indices", x="Year", y="Index") 
  + scale_color_discrete(name="Individual replications")  
  + theme_light()) 
  # + guides(colour=guide_legend(override.aes=list(colour=c(hue_pal()(11)[1:10], "black"), size=c(rep(1, 10), 1.5))))

它基本上与以下问题相同,但有一个可重现的示例: 手动颜色分配

我的问题是,现在我不知道如何更改以下行才能使图例中的条目也变黑:

guides(colour=guide_legend(override.aes=list( colour=c(hue_pal()(11)[1:10], "black"), size=c(rep(1, 10), 1.5))))

也许有人可以解释上面一行中的参数的含义,或者可以将问题发布到上面的链接中,因为我的街头信誉不足。 这样做.. :)如果有帮助,我在实图中有13个变量(不在上面的可重现示例中)。 提前致谢!

您的解决方案看起来过于复杂。 为什么不简单选择scale_color_manualscale_size_manual

ggplot(ind78_ymean_melt, aes(Year, value, color = variable, size = variable)) +
    geom_line() +
    labs(title = "Development of the indices", 
         x = "Year", 
         y = "Index",
         color = "Individual replications") +
    scale_color_manual(values = c("black", hue_pal()(2))) +
    scale_size_manual(values = c(1.5, rep(0.5, 2))) +
    theme_light() +
    guides(size = FALSE)

在此处输入图片说明

这是@drmariod的解决方案:

(ggplot(ind78_ymean_melt, aes(x=Year, y=value, color=variable), size=2) 
  + geom_line()
  + geom_line(data=subset(ind78_ymean_melt, variable == "name3"), colour="black", size=1.5)
  + labs(title="Development of the indices", x="Year", y="Index") 
  + scale_color_discrete(name="Individual replications")  
  + theme_light()
  + guides(colour=guide_legend(override.aes=list( colour=c(hue_pal()(2), "black"), size=c(rep(1, 2), 1.0)))) ) 

最后一条代码行的说明:hue_pal()(11)从色相调色板创建11种颜色,但仅选择颜色1:10并为其添加黑色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM