r - 在现有的ggplots中将颜色更改为黑色

标签 r ggplot2

这是一个关于 ggplot2 包的问题(作者:Hadley Wickham)。我有 现有的 ggplot 对象 具有不同的颜色(resp 形状、线型、填充...),我想映射到单一颜色,例如黑色的。推荐的方法是什么?

澄清:我必须使用这些 ggplot 对象:我无法重新制作它们

将变量分组为因子的 ggplot:这是我需要使用的绘图对象 p

p <- ggplot(mtcars, aes(x = mpg, y = wt, group = factor(cyl), colour = factor(cyl))) + 
    geom_point(size = 5)

enter image description here

我知道的几种方法:

1。 scale_colour_grey 破解

p + scale_colour_grey(start = 0, end = 0) + # gives correct, useless legend
    guides(color = FALSE)

较短的p + scale_colour_grey(0,0) 不起作用,您必须明确startend

2。 scale_colour_manualrep() hack

p + scale_colour_manual(values = rep("black",3)) # gives correct, useless legend

更简单的 scale_colour_manual(values = "black") 不起作用。这可能是最直观的方法。必须指定向量的长度会降低它的吸引力。

3。 geom_point() 召回

p + geom_point(colour = "black") + # gives incorrect legend
    guides(color = FALSE)

enter image description here

有据可查的是,以下是不允许的:

 p + scale_colour_manual(colour = "black")
Error in discrete_scale(aesthetic, "manual", pal, ...) : 
  unused argument (colour = "black")

最佳答案

直接删除颜色映射似乎有效:

p_bw = p
p_bw$mapping$colour = NULL
gridExtra::grid.arrange(p, p_bw)

enter image description here

关于r - 在现有的ggplots中将颜色更改为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37077122/

相关文章:

r - 在 R 包中包含图像

r - 安装从 CRAN 中删除的包

r - 在 R 中使用 rvest 跟踪页面重定向

r - read.csv读取特定行

r - ggplot2 - 饼图 - 值标签倒序

r - 无法使用 ggplot2 绘制多线图

r - 在给定大小的 powerpoint 幻灯片中绘制 ggplot2 图 - R

r - 更改辅助线 Axis 颜色

r - 使用 ggsave/sprintf 出现奇怪的错误消息

r - 在 R 的当前目录中创建嵌套文件夹?