首页 > 解决方案 > 为 geom_point 和 geom_line 创建不同的配色方案:ggplot2

问题描述

我正在尝试使用包含 geom_smooth 和 geom_point 的 ggplot2 创建一个绘图。由于我想查看线的斜率以及它如何随时间变化,我想将 geom_smooth 线着色为一种颜色(时间点),并将点着色为不同的颜色(按绘图)。我尝试了各种不同的东西,但都失败了。包括我在 stackoverflow 上找到的一些选项。

我的代码如下:

##Edited code to show as of 7/28
ggplot(data, aes(x = InitialAshDepth, y = S.obs, color =TimePoint)) +
geom_point(size = 3.5, aes(fill = Plot))+
geom_smooth(method = "lm", alpha=0.15, aes(color = TimePoint)) +
#geom_smooth( method=lm, alpha=0.15,aes(group = TimePoint, 
color=TimePoint))+
scale_color_manual(values = TP) + 
  theme_bw()

有人可以让我知道如何实现这一目标,或者这是否可能?

请注意,我尝试过分组依据和颜色依据或两者的组合(当我将两者结合时,我收到错误消息,指出我需要 700 多种颜色)?

这是我创建的图表,但点的颜色与 geom_smooth 线没有不同。抱歉,我不允许嵌入图片,但请查看链接。

在此处输入图像描述

这是我正在使用的列的数据示例。这里我只显示三个时间点只是为了节省空间,但我实际上有 9 个时间点。请查看图像,因为我复制和粘贴时数据会失真。

样本数据:

Plot    TimePoint   Treatment   SpeciesRichness
1   TP1 Burned  88
1   TP2 Burned  66
1   TP3 Burned  60
2   TP1 Burned  119
2   TP2 Burned  55
2   TP3 Burned  44
3   TP1 Burned  35
3   TP2 Burned  34
3   TP3 Burned  22
4   TP1 Burned  63
4   TP2 Burned  49
4   TP3 Burned  9
5   TP1 Burned  26
5   TP2 Burned  35
5   TP3 Burned  66
6   TP1 Burned  21
6   TP2 Burned  85
6   TP3 Burned  65
7   TP1 Unburned    57
7   TP2 Unburned    169
7   TP3 Unburned    110
8   TP1 Unburned    166
8   TP2 Unburned    180
8   TP3 Unburned    114
9   TP1 Unburned    270
9   TP2 Unburned    194
9   TP3 Unburned    328

标签: rggplot2

解决方案


我想我可能刚刚想通了。如果其他人需要,这是代码。我确实需要更新问题,但我不知道该怎么做。它是 geom_smooth 而不是 geom_line 但似乎代码对两者都适用。

#创建你想要的配色方案......................................................

colorTP<-c("#65000b","#a50F15","#EF3B2C","#FC9272","#FCBBA1","#fac2e3","#001499","#0a2bff","#9acfe4")

colorPlot<-c("#40271f","#5e4839","#947f70","#c49f68","#bfb3aa","#ebddc7","#235978","#45877f","#aed4ca")

#Code to create plot--- 其中 MetaRare 是您正在使用的数据 ------

  geom_smooth(method = "lm", alpha = .15, aes(color=TimePoint)) +
  geom_point(aes(fill=factor(Plot)), size=4, shape=21, stroke=0) +
  scale_fill_manual(values=colorPlot) +
  scale_colour_manual(values=colorTP) +
  theme_classic() +
  labs(fill="Plot", colour="Time Point ")```

推荐阅读