如何解决如何绘制具有相同x轴的每个列表元素?
可复制的示例:
a <- 2
b <- 1
tau <- 2
t <- seq(1,3,1)
y <- seq(0,10,1)
G.fun <- function(x,shape,scale){pgamma(x,scale)}
G <- vector(mode = "list",length = length(t))
for (t in 1:length(t)){
G[[t]] <- G.fun(y,shape = a*t,scale = b)
}
如果x轴的所有y都是
解决方法
在基数R中,您也可以使用matplot
函数。首先,您必须确保列表中有矩阵:
mat <- do.call(cbind,G) #or even unname(as.matrix(data.frame(G)))
matplot(y,mat,type = "b")
这可以写为matplot(y,do.call(cbind,G),type = "b")
基本R
plot(y,G[[1]],pch = 16,type = "b")
for (i in seq_along(G)[-1]) points(y,G[[i]],type = "b",col = i)
ggplot
(我将使用tidyr
重塑形状。)
dat <- cbind(y=y,setNames(as.data.frame(G),c("A","B","C")))
dat2 <- tidyr::pivot_longer(dat,-y)
head(dat2)
# # A tibble: 6 x 3
# y name value
# <dbl> <chr> <dbl>
# 1 0 A 0
# 2 0 B 0
# 3 0 C 0
# 4 1 A 0.264
# 5 1 B 0.0190
# 6 1 C 0.000594
ggplot(dat2,aes(y,value,color = name)) + geom_path()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。