我是R的新手,因此对于R社区而言,这也许是“轻松”的。我有一个数据集,其中包含一个x向量和serval(在这种情况下为8个)对应向量(矩阵)。我想将它们绘制在一张具有不同线条颜色的图形中。这是我尝试过的:
df = data.frame(x=x, y = matrix(nrow = length(x), ncol = 8))
mat=matrix(nrow = length(x), ncol = 8)
gp<-ggplot(df,aes(x,mat[,1], group_indices(mat))) +geom_line(size=1) +
xlab("Voltage") + ylab("Current") + scale_y_log10() + ggtitle(paste("IV Curve") )
for (i in seq(2,8,1) )
{
gp= gp + geom_line(aes(x,y=mat[,i], colour=i),size=1)
}
但是这只给我一个图形中的第一个和最后一个数据。
这是有效的:
gp= gp + geom_line(aes(x,mat[,2], colour=2),size=1) +
geom_line(aes(x,mat[,3], colour=3),size=1) +
geom_line(aes(x,mat[,4], colour=4),size=1) +
geom_line(aes(x,mat[,5], colour=5),size=1) +
geom_line(aes(x,mat[,6], colour=6),size=1) +
geom_line(aes(x,mat[,7], colour=7),size=1) +
geom_line(aes(x,mat[,8], colour=8),size=1)
但是我想使其更加自动化和简单。我愿意接受新想法,我想我对R中的不同变量类型并不满意。在此先感谢。
答案 0 :(得分:1)
以内置的第8列anscombe
数据集为例,尝试以下代码。
library(ggplot2)
library(zoo)
x <- 1:nrow(anscombe)
autoplot(zoo(anscombe, x), facet = NULL) +
xlab("Voltage") +
ylab("Current") +
scale_y_log10() +
ggtitle("IV Curve")
给予:
答案 1 :(得分:0)