我在rstudio中创建了一些数据的平滑曲线图以及相应的数据点,其中包含以下代码:
#begin code
library(ggplot2)
ggplot(mydata, aes(x,y)) + geom_point() + geom_smooth()
p <- ggplot() +
# blue plot
geom_point(data=mydata, aes(x,y)) +
geom_smooth(data=mydata, aes(x,y),fill="blue",
colour ="darkblue", size=1) +
# red plot
geom_point(data=mydata, aes(x,y2)) +
geom_smooth(data=mydata, aes(x,y2), fill="darkred",
colour="red", size=1)
p + xlab('Density') + ylab("Potential Energy (MeV)")
#endcode
数据以三列中的x,y,y2形式输入。
我可以让图表找到工作,但我无法弄清楚如何添加图例。原生legend()
函数不起作用,任何使用theme()
或scale_colour_manual()
的尝试都只会返回未更改的图形。如何添加图例或图形以区分红色和蓝色曲线?
答案 0 :(得分:1)
这是我用作例子的数据。
mydata=data.frame(x=seq(1,10),
y1=floor(runif(min = 1,max=10,10)),
y2=floor(runif(min = 1,max=10,10)))
为了让它与ggplot2一起使用,我使用了reshape2库中的函数melt。
mydata=melt(mydata,measure.vars = c("y1","y2"))
然后我使用了以下代码,lmk如果符合您的需要:
ggplot(mydata,aes(x,value))+
geom_point(aes(fill=as.factor(variable)))+
geom_smooth(aes(fill=as.factor(variable)))+
scale_fill_manual(values=c("red","blue"),guide=guide_legend(title="Variable"))