如何在R中绘制两列的散点图



我正在尝试制作两列(V13和V21(的散点图。我希望x轴上的行号和y轴上的每列都在同一个图上。所以每列都有自己的一组y值。我希望行号在x轴上。然而,当我去绘制这个图时,我会得到:

xy.cords(x,y,xlabel,ylabel,log(中的错误:"x"one_answers"y"长度不同

我正在处理的数据帧被称为";Vs.highvar";。数据有两个变量的1000个obs,我希望x轴是行数(1000(,所以我想这就是问题所在。我该怎么做?我是否必须将数据拆分为两列/两个单独的数据帧?我对R很陌生。我试过split()separate()plot()ggplot2.scatterplot()scatterplot()

到目前为止的代码:

Vs <- read.csv(file="x.csv", 
header=TRUE,
fill=TRUE)
#find variables with largest variance 
head(Vs)
variances <- apply(X=Vs, MARGIN=2, FUN=var)
sortedvars <- sort(variances, 
decreasing=TRUE, 
index.return=TRUE)$ix[1:2]
Vs.highvar <- Vs[, sortedvars]
Vs.highvar #returns variables V13 and V21
#create scatterplot
plot(nrow(Vs.highvar), Vs.highvar$V13, 
main="Variances")

我不确定你想要的图是什么样子。尽管如此,您总是需要相似数量的x和y值。nrow(Vs.highvar)是单个数字。

如果x轴应该是一个连续的数字(计数器(,那么你需要一个可以用1:nrow(Vs.highvar)得到的序列:试试plot(1:nrow(Vs.highvar), Vs.highvar$V13, main="Variances")

(否则,如果要对多个y值使用相同的值,则需要复制总行数(nrow(Vs.highvar((。您可以使用rep()函数来执行此操作。尝试:plot(rep(nrow(Vs.highvar), nrow(Vs.highvar)), Vs.highvar$V13, main="Variances")

此外,还有一个参数为addpoints()函数。设置为TRUE时,可以将第二个数据系列(=表的列(添加到现有绘图中。

plot(1:nrow(Vs.highvar), Vs.highvar$V13, main="Variances")
points(1:nrow(Vs.highvar), Vs.highvar$V21, add=T)

编辑:我重组了上面的文本。

最新更新