作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有许多(超过 100 个)具有相同表结构的 csv 文件,例如,所有表头都在第 4 行,它们都有 6 列,数据从第 5 行到第 400001 行,
我需要将这些数据绘制在散点图中,其中 x 显示第一列(40001 时间单位),其他列是不同变量的 Y,[如果我能够格式化绘图(颜色、范围、标题、图例,则更可取) , ...)] 并自动输入这些 csv 文件并导出 png 或 pdf 或其他任何可能有用的文件,我同时拥有 Excel 和 R,但我不知道如何以有效的方式进行绘图。 (命名也很重要,它们应具有其 CSV 文件的名称)
关于如何以更少的努力做到这一点的任何想法?
谢谢
最佳答案
您的问题对具体细节有点轻,所以我将做一些假设以开始一种答案的骨架。
让我们制作一些假的 CSV 文件作为示例数据
将工作目录设置为包含数据的文件夹...
setwd("C:/my-csv-files")
df <- lapply(1:100, function(i) data.frame(cbind(1:500, matrix(sample(1000), 500, 5))))
lapply(1:length(df), function(i) write.csv(df[[i]],file=paste("df",i,"csv",sep=".")))
# create a list of all CSV files in all the folders
files <- (dir("C:/my-csv-files", recursive=TRUE, full.names=TRUE, pattern="\\.(csv|CSV)$"))
# read in the CSV files and add the filename of each file as a column to
# each dataset so we can trace back dodgy data
# so, create a function to read the CSV and get filenames
read.tables <- function(file.names, ...) {
require(plyr)
ldply(file.names, function(fn) data.frame(Filename=fn, read.csv(fn, ...)),.progress = 'text')
}
# execute function to read in data from each CSV, including file names of file that data comes from
mydata <- read.tables(files, stringsAsFactors = FALSE)
X1
是你的时间变量和
X2
至
X5
是 CSV 文件中的其他变量
require(reshape2)
dat <- melt(mydata, id.vars = c("X1"), measure.vars = c("X2", "X3", "X4", "X5"))
require(ggplot2)
ggplot(dat, aes(X1, value)) +
geom_point(aes(colour = factor(variable)))
?ggsave
对于这里的众多选择...
ggsave(file="myplot.pdf")
ggsave(file="myplot.png")
getwd()
listcsvs <- lapply(files,function(i) read.csv(i, stringsAsFactors = FALSE))
names(listcsvs) <- files
require(reshape2)
require(ggplot2)
for (i in 1:length(files)) {
tmp <- melt(listcsvs[[i]], id.vars = "X1", measure.vars = c("X2", "X3", "X4", "X5"))
print(ggplot(tmp,aes(X1, value)) +
geom_point(aes(colour = factor(variable))) +
ggtitle(names(listcsvs[i]))
)
}
关于r - 如何自动绘制具有相同行数和列数的多个 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19852774/
在我的 android 应用程序中,我想在同一行中实现 2 个文本字段。如果文本太长可以转到下一行。所以我使用了更精简的水平布局并添加了 2 个文本字段。 [例如:TextView1、TextV
由于node使用了javascript,它可以充当webrtc peer吗? 然后我可以将它编码为 VP8 流并广播给所有其他对等方吗? 最佳答案 WebRTC 是一个浏览器 API 而不是 Java
我是一名优秀的程序员,十分优秀!