[英]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()
使用linetype
和shape
参数,并在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.