我有一个逗号分隔的文件foo.csv
,其中包含以下数据:
scale, serial, spawn, for, worker
5, 0.000178, 0.000288, 0.000292, 0.000300
10, 0.156986, 0.297926, 0.064509, 0.066297
12, 2.658998, 6.059502, 0.912733, 0.923606
15, 188.023411, 719.463264, 164.111459, 161.687982
我基本上有两个问题:
1)如何绘制第一列(x轴)与第二列(y轴)?我正在尝试这个(通过阅读this site):
data <- read.table("foo.csv", header=T,sep=",")
attach(data)
scale <- data[1]
serial <- data[2]
plot(scale,serial)
但是我得到了这个错误:
Error in stripchart.default(x1, ...) : invalid plotting method
知道我在做什么错吗? quick Google search揭示了其他有相同问题但没有相关答案的人。更新:事实证明,如果我跳过中间的两个赋值语句,效果很好。知道为什么会这样吗?
在第一个问题之后很容易得出第二个问题:
2)如何绘制第一列(x轴)与所有其他列在y轴上的关系?我认为一旦解决了遇到的第一个问题,这是很容易的,但是对于R来说它只是一个新手,所以我仍会继续思考。
最佳答案
您不需要这两行:
scale <- data[1]
serial <- data[2]
已经从
read.table
中的 header 设置了比例和序列号。scale <- data[1]
也会根据data.frame
创建一个元素 data[1]
1 5
2 10
3 12
4 15
而
scale
中的read.table
是 vector 5 10 12 15
并且
plot(scale, serial)
函数期望 vector 而不是data.frame,因此您只需要plot(scale, serial)
一种在y轴上绘制其他数据列的方法:
plot(scale,serial, ylab="")
par(new=TRUE)
plot(scale,spawn,axes=F, ylab="", type="b")
par(new=TRUE)
plot(scale,for., axes=F, ylab="", type="b")
par(new=TRUE)
plot(scale,worker,axes=F, ylab="", type="b")
可能有更好的方法可以做到这一点,但这超出了我目前的R知识。
关于r - 在R中绘制简单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/876711/