使用scale_color_grey限制R中的颜色变化

时间:2015-06-22 23:53:45

标签: r colors ggplot2

在开始之前,请允许我解释一下我的图表:我有两种基因型( WTB whd ),每种都有两种情况( 0 7 ),所以我有四行。

现在,我想制作一个图,其中每个变量及其条件是相同的颜色。 whd 的任何内容都是黑色 WTB 的任何内容都将灰色

我设法正确地用实线/虚线制作图表,但是,我在着色方面遇到了麻烦。我只能这样才能有灰色渐变。 scale_color_grey是否有任何参数可以帮助我解决这个问题?

这是我的代码(我拿出部分代码以便于阅读):

ggplot(data=df4, aes(x=Day, y=Remain, group=Condition, shape=Condition, colour=Condition) + 
theme_bw() +
geom_line(aes(linetype=Condition), size=1) +
geom_point(size=0, fill="#FFFFFF") +
scale_linetype_manual(name="Genotype",
values=c("solid", "dashed", "solid", "dashed")) +
scale_shape_manual(name="Genotype", values=c(1,19,1,19)) +
scale_color_grey(name="Genotype")

1 个答案:

答案 0 :(得分:1)

我认为这段代码应该产生你想要的情节。但是,如果没有您的确切数据集,我必须生成模拟数据。

## Generate dummy data and load library
library(ggplot2)
df4 = data.frame(Remain = rep(0:1, times = 4),
      Day = rep(1:4, each = 2),
      Genotype = rep(c("wtb", "whd"), each = 4),
      Condition = rep(c("0", "7"), times = 4 ))

接下来,我创建了一个分组变量:

df4$both = paste0(df4$Genotype, df4$Condition)

最后,我策划并保存了这个数字:

example <-  ggplot(data=df4, aes(x=Day, y=Remain, 
                group=both, 
                color = Genotype,
                linetype = Condition)) + 
                geom_line() +
                scale_color_manual(values = c("grey50", "black")) +
                scale_linetype_manual(values = c("solid", "dashed")) +
                theme_bw()

ggsave("example.jpg", example)

enter image description here

从您的代码中,为什么您包含geom_point并不明显。此外,如果您只想要一个子图例而不是两个,这个SO question提供了有关如何执行此操作的详细信息。