簡體   English   中英

如何繪制多列CSV文件?

[英]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=TRUEread.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM