我想通过ggplot演示spline
函数中的不同方法。例如,
x=c(0,2,5)
y=c(1,4,29)
xout=seq(0,6,0.5)
首先,我计算不同的插值:
s1=spline(x,y,xout=xout,method='natural')
s2=spline(x,y,xout=xout,method='fmm')
s3=spline(x,y,xout=xout,method='hyman')
然后,绘制每个插值
library(ggplot2)
ggplot(as.data.frame(s1),aes(x,y)) +
geom_line(size=1.2,col='red') +
geom_line(data=as.data.frame(s2),size=1.2,col='blue') +
geom_line(data=as.data.frame(s3),size=1.2,col='green') +
geom_point(data=data.frame(x=x,y=y),size=4)
但是,我无法获得每种方法的图例,scale_color_brewer
也不起作用。
完成这项工作的正确步骤是什么?
答案 0 :(得分:0)
我猜这个问题的意图是(1)随意给单个样条颜色着色,(2)显示相应的图例。因此,我只需稍微修改您的代码即可使其正常工作。
cols <- c('natural'='red','fmm'='blue','hyman'='green') # <- you could modify the colour here
ggplot(as.data.frame(s1),aes(x,y)) +
geom_line(size=1.2, aes(colour='natural')) + # you need aes() to ensure it shows in the legend
geom_line(data=as.data.frame(s2),size=1.2, aes(colour='fmm')) +
geom_line(data=as.data.frame(s3),size=1.2, aes(colour='hyman')) +
geom_point(data=data.frame(x=x,y=y),size=4) +
scale_colour_manual(name='spline', values=cols,
guide = guide_legend(override.aes=aes(fill=NA)))