我是R的新手,请原谅我提出一个可能很愚蠢的问题.
我有一个多列CSV(以逗号分隔,没有引号)文件,其中第一行是标题,第一列是连续的整数索引,其他17列是函数的浮点值.
任务是在同一图表上绘制所有17条线(使用相同的轴).
听起来很简单但实际上并不是很明显.
Ben*_*ker 24
可能是最紧凑,仅基于R的解决方案
mydata <- read.csv("mydatafile.csv")
matplot(mydata[, 1], mydata[, -1], type="l")
Run Code Online (Sandbox Code Playgroud)
header=TRUE是默认选项read.csv(),因此您无需显式指定标题行的存在mydata[, 1]选择第一列; mydata[, -1]选择除第一列之外的所有列type="l"选择行(默认为点); 看?matplot,?plot改变线型,颜色,等等等等的详细信息...一旦你知道它matplot是有用的,你可以搜索StackOverflow以获取其他示例,例如如何从R中的csv绘制多条线
您可以使用read.csv将数据作为 data.frame 输入。然后你有很多绘图选择。我更喜欢lattice大多数调查工作。
格子中的两个。在这里,我正在创建随机数据来绘制图表。
library(lattice)
d <- data.frame(index=1:20, x=rnorm(20), y=rnorm(20))
> head(d, n=3)
index x y
1 1 -1.065591 0.2422635
2 2 -1.563782 -1.4250984
3 3 1.156537 0.3659411
xyplot(x+y~index, data=d, type='l', auto.key=list(space='right'))
Run Code Online (Sandbox Code Playgroud)
您可以从列的名称生成公式。我通常不会从提示中执行此操作,而是在代码中使用此类构造:
f <- paste(paste(names(d[,-1,drop=FALSE]), collapse="+"),
names(d[,1,drop=FALSE]),
sep=" ~ ")
xyplot(as.formula(f), data=d, type='l', auto.key=list(space='right'))
Run Code Online (Sandbox Code Playgroud)
在 Ben 的回答中,type='l'指定行。默认type='p'为点。我在auto.key这里添加了参数,以标记系列。

| 归档时间: |
|
| 查看次数: |
34722 次 |
| 最近记录: |