这似乎是一个微不足道的问题,尽管我已经用它打了很长时间。
这甚至没有绘制(0,0) - 我似乎找不到关于从数组绘图的更多信息 - 而只是矩阵图(并且只有那些列)。
数据在这些数组中是正确的,我只需要制作情节!似乎并不那么复杂。我甚至不需要为不同的集合设置单独的颜色......只需要一个大的散点图。
有什么建议吗?
pdf(mypath)
# Plot first point
plot(0,0, col = "blue", type = "n", xlab="PES", ylab=""%eff")
#Loop to Plot remaining points
for(rows in 1:nrowX)
{
for(cols in 1:ncolX)
{
points(X[rows,cols],Y[rows,cols], col = "blue", type = "p")
}
}
dev.off
我也尝试使用plot.new()
来制作空图......但没有这样的运气。
解!!
原来我只是个傻瓜。代码是准确的,下面的建议确实有效。
R碰巧在另一个标签中打开,因为它是开放的,所以永远不要放弃情节(为什么?我不知道)。一旦关闭,情节就出现了。现在我可以一次又一次地得到我的情节......感谢所有尝试帮助解决问题的人!
我已经喜欢这个地方了!
答案 0 :(得分:0)
你的初始情节将设置坐标,但由于你只给它一点,它不知道在0点附近有多少空间(所以它不会留下很多)。我希望你的其余分数超出该范围,这就是为什么它们没有出现在情节中(你可以使用par("usr")
来查看范围)。
创建初始图时,您应该包含xlim
和ylim
个参数,以便图表包含添加新点的区域,如:
plot(0,0, type='n', xlim=range(X), ylim=range(Y))
您可能也对matplot
函数感兴趣,该函数将矩阵作为x和/或y参数之一或两者并相应地进行绘图。
修改强>
以下适用于我:
X <- matrix( runif(390), nrow=10 )
Y <- matrix( rnorm(390), nrow=10 )
plot(0,0, col = "blue", type = "n", xlab="PES", ylab="%eff",
xlim=range(X), ylim=range(Y))
#Loop to Plot remaining points
for(rows in 1:nrow(X))
{
for(cols in 1:ncol(X))
{
points(X[rows,cols],Y[rows,cols], col = "blue", type = "p")
}
}
我确实从"
删除了额外的ylab
,这是您的问题吗?
但是
plot(X,Y)
也没有循环。
在担心发送到pdf文件之前,只需检查一下控制台是否有效。如果还没有解决,我们还需要更多细节。
答案 1 :(得分:0)
设置type = "n"
时,绘图功能根本不会绘制任何内容。它用于为图的其余部分设置基础(如轴标签,限制等)。这就是为什么第一个点(0,0)没有显示出来的原因。
其余的分数可能超出范围。使用xlim
和ylim
正确设置范围。我将假设X
和Y
具有相同的大小和维度。试试这个:
pdf(mypath)
# Set up the plot
plot(0, type="n", xlab="PES", ylab="%eff", xlim=range(X), ylim=range(y))
# Now plot
points(X,Y, col="blue")
dev.off
当然,您可以让plot
功能为您处理限制:
pdf(mypath)
plot(X, Y, xlab="PES", ylab="%eff")
dev.off()