ggplot2使用scale_colour_manual访问默认颜色?

时间:2012-09-08 13:21:06

标签: r colors ggplot2

我正在使用scale_colour_manual指定我需要的可能颜色。但是,如果我选择red,我会得到引人注目的红色,而不是在第一时间没有使用scale_colour_manual时出现的较为温和的ggplot2默认红色。访问ggplot2默认调色板的标签或常量是什么?

 ggplot(data=df, aes(x=n, y=rt, group=kernel, shape=kernel, colour=kernel)) + 
     geom_point(fill="white", size=3) + geom_line() + xlab("n") + ylab("Runtime (s)") + 
     opts(title=title,plot.title=theme_text(size=font.size)) + 
     scale_colour_manual(values=c("grey30", "red")) + 
     opts(legend.position = c(x_shift,0.87),legend.background=theme_rect(fill = "transparent",colour=NA))

请注意,使用'red30'不起作用,它仅适用于灰色,原因我不知道。

2 个答案:

答案 0 :(得分:4)

red30不起作用,因为没有概念只有百分之三十的颜色,尽管存在百分之三十的灰色阴影的概念(即黑白之间的30%。)

如果您需要使用scale_color_manual的非燃目红色,则需要在RGB中指定颜色,即。通过使用三个字节来表示十六进制的红绿色和蓝色。这样的事情应该有效

ggplot(data=df, aes(x=n, y=rt, group=kernel, shape=kernel, colour=kernel)) + 
 geom_point(fill="white", size=3) + geom_line() + xlab("n") + ylab("Runtime (s)") + 
 opts(title=title,plot.title=theme_text(size=font.size)) + 
 scale_colour_manual(values=c("grey30", "#EF8A62")) + 
 opts(legend.position = c(x_shift,0.87),legend.background=theme_rect(fill =  "transparent",colour=NA))

如果您不知道如何使用这种颜色编码,请参阅this。我不知道如何提取ggplot以编程方式使用的颜色,但是您可以随时将使用标准颜色生成的绘图加载到某些图像编辑器(例如The Gimp)中,并找出确切的颜色代码。您可以在colorbrewer找到合适的配色方案,但请注意ggplot2已经具有以下功能:scale_brewer

答案 1 :(得分:1)

默认"粉红色"和"淡蓝色" ggplot2中使用的十六进制代码分别为#f8766d#00b0f6,RGB代码分别为248,118,1090,176,246。要使用scale_colour_manual指定这些内容:

scale_colour_manual(values=c("#f8766d", "#00b0f6"))