正式参数"type"被多个实际参数匹配。

6

我已将一个程序从R翻译成C++。该程序运行多次迭代,每次使用不同的值,然后生成直方图和图表。由于C++图形有些棘手,所以我决定将值保存为csv格式,并在R中绘制它们。文件相当大,对于较小的文件,10个迭代产生23000行和3列。当然,100或1000个迭代会显著增加。csv文件的格式是1, 3, 0.0107171,这对应于列号、行号和数据。然后我在R中运行:

>data<-read.csv(file.choose(),header=T)
>plot(data,type="b", pch=19, xlab="X", ylab="Y")
Error in plot.default(...) : 
  formal argument "type" matched by multiple actual arguments

作为一项附加说明:
> hist(data[,3], xlab="Step length (m)", main="")

直方图没有问题。如果您需要更多细节,请告诉我,因为当涉及到R时,我可能会错过一些明显的东西。先谢谢了。

2
你正在将一个三列数据框传递给 plot.default。你期望它产生什么样的结果? - IRTFM
你想要一个伪三维图吗?那么 persp 可能更有趣。 - IRTFM
3个回答

8
您正在将一个数据框传递给plot函数,该函数会调用plot.data.frame函数。如果数据框中的列数大于2,则会进一步调用:
pairs(data.matrix(data))

因此,您可以在...中传递对pairs有效的参数(type不是有效参数)。

但是,我认为您可能想考虑一下从数据中绘制什么。

  • 应该放在x轴上的是什么
  • 应该放在y轴上的是什么

然后根据需要创建对plot(或者matplot)的调用。


0
在我的情况下,这表明我的输入数据结构不是数字类型。我使用 as.numeric 解决了这个问题,具体如下:
plot(as.numeric(df[1, 1:9]), as.numeric(df[2, 1:9]),   
    las = 2, type = "l", 
    col = colrs[3],lwd = lwds[1], ylim = c(0, 1.05*maxnumb), xlim = c(-0.6, yAx), main = weDraw, ylab = "OD 600", xlab = "hours", xaxt = "n")

-2

抱歉回复晚了。我遇到了这个问题,原因是在另一个函数内部向 plot 函数传递了一个数据框。解决方法很简单,只需要这样做:

do.plot <- function(df = plot.df[c(1, 2), ]) { as.matrix(df) plot(.....)}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接