r - 在R中绘制简单数据

标签 r plot

我有一个逗号分隔的文件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/

相关文章:

r - 将点连接到图中的回归线

matlab - Matlab 中具有密度的散点图

python - 如何在绘图标记上添加标签

python - 如何将几个类似的 .csv 文件合并到一个具有给定结构的数据框中

r - 在线性模型中结合 cbind 和 paste

r - 如何使用ggplotly创建多色分段线?

r - 库中的错误( Shiny ): there is no package called 'shiny' ON WINDOWS

r - 如何在矩阵上使用 for 循环

r - 如何在简单的格子图中更改面板的顺序

r - 在 R 中绘制多项式回归曲线