6

我已经将一个程序从 R 翻译成 C++。有问题的程序使用不同的值对其自身进行多次迭代,然后生成直方图和绘图。C++ 图很挑剔,所以我决定将值保存为 csv 格式并将它们绘制在 R 中。这些文件相当大,对于较小的文件,10 次迭代会产生 23000 行和 3 列。当然,这会在 100 或 1000 次迭代中急剧增加。csv 文件的格式为 1,3,0.0107171,对应于 col num、row num 和 data。然后我将它运行到 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 方面不是很好,所以我可能会遗漏一些明显的东西。提前致谢。

4

3 回答 3

8

您将 data.frame 传递给plot,它调度plot.data.frame,对于具有超过 2 列的 data.frame ,调用

pairs(data.matrix(data))

所以你可以传递对(不是)...有效的参数pairstype

但是我认为您可能想考虑要从数据中绘制什么

  • x轴上应该是什么
  • y轴上应该是什么

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

于 2013-04-18T03:42:05.383 回答
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")
于 2020-10-05T09:08:01.157 回答
-2

抱歉回复晚了。我遇到了这个问题,这是由于将绘图函数从另一个函数内部传递了一个 data.frame。解决方法是简单地执行此操作:

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

于 2016-03-24T20:29:53.887 回答