R 使用ggplot2中的不同调色板进行过涂

R 使用ggplot2中的不同调色板进行过涂,r,ggplot2,R,Ggplot2,亲爱的堆栈溢出读者: 我有一个数据集,我有“原始”数据,并为其额外计算某种平滑函数。然后,我想将原始数据绘制为点,将平滑绘制为线。这适用于以下情况: Loc <- seq(from=1,to=50) Loc <- append(Loc,Loc) x <- seq(from=0,to=45,by=0.01) Val <- sample(x,100) labels <- NULL labels[1:50] <- 'one' labels[51:100] <-

亲爱的堆栈溢出读者:

我有一个数据集,我有“原始”数据,并为其额外计算某种平滑函数。然后,我想将原始数据绘制为点,将平滑绘制为线。这适用于以下情况:

Loc <- seq(from=1,to=50)
Loc <- append(Loc,Loc)
x <- seq(from=0,to=45,by=0.01)
Val <- sample(x,100)
labels <- NULL
labels[1:50] <- 'one'
labels[51:100] <- 'two'

x2 <- seq(from=12,to=32,by=0.01)
Val2 <- sample(x2,100)
raw <- data.frame(loc=Loc,value=Val,lab=labels)
smooth <- data.frame(loc=Loc,value=Val2,lab=labels)

pl <- ggplot(raw,aes(loc,value,colour=lab)) + geom_point() + geom_line(data=smooth)
print(pl)

Loc您可以通过在
geom_point()
中设置
alpha=
值来尝试使点变亮,而不是使线变暗


pl您可以通过在
geom_point()
中设置
alpha=
值来尝试使点变亮,而不是使线变暗


pl我没有一个完美的答案给你,但我确实有一个有效的答案。通过将线条拆分为单独的几何图形,可以单独控制线条的颜色,如下所示:

ggplot(raw,aes(loc,value)) + 
geom_point(aes(col=lab)) + 
geom_line(data=smooth[smooth$lab=="one",], colour="blue", size=1) + 
geom_line(data=smooth[smooth$lab=="two",], colour="black", size=1)
ggplot(raw,aes(loc,value,colour=lab)) + 
geom_point() + 
geom_line(data=smooth, size=2, alpha=0.5)

这样做的缺点是必须手动指定行选择,但优点是可以手动指定每行的视觉特性

另一个选项是使用相同的调色板,但使线条更大且部分透明,如下所示:

ggplot(raw,aes(loc,value)) + 
geom_point(aes(col=lab)) + 
geom_line(data=smooth[smooth$lab=="one",], colour="blue", size=1) + 
geom_line(data=smooth[smooth$lab=="two",], colour="black", size=1)
ggplot(raw,aes(loc,value,colour=lab)) + 
geom_point() + 
geom_line(data=smooth, size=2, alpha=0.5)


你应该可以从这里定制东西来满足你的需要。

我没有一个完美的答案给你,但我有一个有效的答案。通过将线条拆分为单独的几何图形,可以单独控制线条的颜色,如下所示:

ggplot(raw,aes(loc,value)) + 
geom_point(aes(col=lab)) + 
geom_line(data=smooth[smooth$lab=="one",], colour="blue", size=1) + 
geom_line(data=smooth[smooth$lab=="two",], colour="black", size=1)
ggplot(raw,aes(loc,value,colour=lab)) + 
geom_point() + 
geom_line(data=smooth, size=2, alpha=0.5)

这样做的缺点是必须手动指定行选择,但优点是可以手动指定每行的视觉特性

另一个选项是使用相同的调色板,但使线条更大且部分透明,如下所示:

ggplot(raw,aes(loc,value)) + 
geom_point(aes(col=lab)) + 
geom_line(data=smooth[smooth$lab=="one",], colour="blue", size=1) + 
geom_line(data=smooth[smooth$lab=="two",], colour="black", size=1)
ggplot(raw,aes(loc,value,colour=lab)) + 
geom_point() + 
geom_line(data=smooth, size=2, alpha=0.5)


您应该能够从这里定制东西以满足您的需要。

看起来我们对alpha有相似的想法。看起来我们对alpha有相似的想法。我最终选择了将您的第二个选项与Didzis的解决方案相结合的方法;使几何点()稍微不那么明显,几何线()更粗。如果你有你的解决方案,只需选择一个答案并结束问题。我最终选择了将你的第二个选项与迪兹的解决方案相结合的方法;使几何点()稍微不那么明显,几何线()更粗。如果你有你的解决方案,只需选择一个答案并结束问题。