繁体   English   中英

将颜色转换为ggplot2中的线型/符号

[英]Translating colors to linetypes/symbols in ggplot2

假设某些R包产生了ggplot对象g ,该对象包含不同颜色的点和/或线。 但是,假设您需要以合适的形式生产此产品,以实现不显示颜色的黑白复制。

一种可能性是打印g + scale_color_grey() 但是,不容易区分不同的灰度值,甚至灰度也不总是适合某些形式的再现。

有什么方法可以将color分组映射到linetype (以及shape )? 我不知道该怎么做。

举个例子,尝试

df <- data.frame(x = c(1:3, 1:3), y = c(4, 1, 9, 2, 7, 5), 
                 trt = factor(c(1,1,1, 2,2,2)))
g <- ggplot(df, aes(x, y, group = trt, color = trt)) + 
     geom_line() + geom_point()

给定g ,绘制具有不同点形状和线型的合适的黑白图。 这需要在不更改产生g的代码的情况下完成。

在评论中更新 @aosmith的答案是最紧凑的:

g + 
  aes(linetype = trt, shape = trt) + 
  scale_color_grey(start = 0, end = 0) + 
  theme_bw()

原版的
您可以在aes()使用linetypeshape参数,并在b&w的ggplot()初始调用中删除color参数。

如果您不能更改g ,请使用scale_color_manual将线条设置为黑色,然后使用theme_bw()创建黑白布局。

g +
  geom_line(aes(linetype = trt), size = 1) + 
  geom_point(aes(shape = trt), size = 3) +
  scale_color_manual(values = c("black", "black")) +
  theme_bw()

情节

暂无
暂无

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

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