library(ggplot2)
hazard<-function(x,a,b)
{
h=(a*b*exp(-b*x)*((1-exp(-b*x))^(a-1)))/(1-((1-exp(-b*x))^a))
return(h)
}
a=seq(1,30,1)
y1=hazard(a,0.2,0.5)
y2=hazard(a,1,0.5)
y3=hazard(a,0.5,1)
y4=hazard(a,2,2)
df=data.frame(a,y1,y2,y3,y4)
ggplot(df,aes(a))+
geom_line(aes(y=y1),colour="blue")+
geom_line(aes(y=y2),colour="red")+
geom_line(aes(y=y3),colour="green")+
geom_line(aes(y=y4),colour="black")+
ylab("hazard function")+ggtitle("Plotting the hazard function")我不能添加图例,因为我对每条曲线使用单独的geom_lines()。给我一个建议
发布于 2020-12-30 16:23:56
您不应该绘制单独的线条,而应获取长格式的数据。如果你想要特定的颜色,你可以使用scale_color_manual来分配它们。
library(ggplot2)
df %>%
tidyr::pivot_longer(cols = -a) %>%
ggplot() + aes(a, value, color = name) +
geom_line() +
scale_color_manual(values = c('blue', 'red', 'green', 'black')) +
ylab("hazard function")+
ggtitle("Plotting the hazard function")

https://stackoverflow.com/questions/65503973
复制相似问题