我正在尝试使用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线没有什么不同。抱歉,我不允许嵌入图片,但是请查看链接。
这是我正在处理的列的数据示例。在这里,我仅出于节省空间而仅显示三个时间点,但实际上我有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
答案 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 ")```