为geom_point和geom_line创建不同的配色方案:ggplot2

时间:2020-07-28 06:46:44

标签: r ggplot2

我正在尝试使用ggplot2创建一个包含geom_smooth和geom_point的绘图。由于我想查看直线的斜率以及其随时间的变化,我想将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线没有什么不同。抱歉,我不允许嵌入图片,但是请查看链接。

enter image description here

这是我正在处理的列的数据示例。在这里,我仅出于节省空间而仅显示三个时间点,但实际上我有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

1 个答案:

答案 0 :(得分:0)

我想我可能刚刚想通了。如果其他人需要它,这是代码。我确实需要更新问题,但是我不知道该怎么做。它是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")

#创建绘图的代码---其中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 ")```