[英]How to plot a multicolumn CSV file?
我是R的新手,請原諒我提出一個可能很愚蠢的問題。
我有一個多列CSV(以逗號分隔,沒有引號)文件,其中第一行是標題,第一列是連續的整數索引,其他17列是函數的浮點值。
任務是在同一圖表上繪制所有17條線(使用相同的軸)。
聽起來很簡單但實際上並不是很明顯。
可能是最緊湊,僅基於R的解決方案
mydata <- read.csv("mydatafile.csv")
matplot(mydata[, 1], mydata[, -1], type="l")
header=TRUE
是read.csv()
的默認選項,因此您無需明確指定標題行的存在 mydata[, 1]
選擇第一列; mydata[, -1]
選擇除第一列以外的所有列 type="l"
選擇行(默認為points); 看?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'))
您可以從列的名稱生成公式。 我通常不會在提示符下執行此操作,但在代碼中使用此類構造:
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'))
和Ben的回答一樣, type='l'
指定行。 對於點,默認值為type='p'
。 我在這里添加了auto.key
參數來標記系列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.