通过循环绘制R图并将其保存为jpeg

时间:2015-08-17 10:39:56

标签: r for-loop plot

我试图通过循环绘制图形。

输入数据:表格具有相同的结尾* depth.txt,表格中有2个制表符分隔的列:

plot()

输出:我想为每个* depth.txt(它们的名称与表名称相同)获取一个带有files <- list.files(path="/home/fil/Desktop/", pattern="*depth.txt", full.names=T,recursive=FALSE) for (i in 1:length(files)) plot(read.table(files[i],header=F,sep="\t")$V1,read.table(files[i],header=F,sep="\t")$V2) dev.copy(jpeg,filename=files[i]) dev.off 的jpeg文件(x轴将是第一个)表中的列和轴y将是第二列)

我创建了脚本的一部分,但它不起作用:

public static class RedisUtils
{
    //Serialize in Redis format:
    public static HashEntry[] ToHashEntries(this object obj)
    {
        PropertyInfo[] properties = obj.GetType().GetProperties();
        return properties
            .Where(x=> x.GetValue(obj)!=null) // <-- PREVENT NullReferenceException
            .Select(property => new HashEntry(property.Name, property.GetValue(obj)
            .ToString())).ToArray();
    }

    //Deserialize from Redis format
    public static T ConvertFromRedis<T>(this HashEntry[] hashEntries)
    {
        PropertyInfo[] properties = typeof(T).GetProperties();
        var obj = Activator.CreateInstance(typeof(T));
        foreach (var property in properties)
        {
            HashEntry entry = hashEntries.FirstOrDefault(g => g.Name.ToString().Equals(property.Name));
            if (entry.Equals(new HashEntry())) continue;
            property.SetValue(obj, Convert.ChangeType(entry.Value.ToString(), property.PropertyType));
        }
        return (T)obj;
    }
}

它没有用,你能帮帮我吗?我是R的初学者。

3 个答案:

答案 0 :(得分:2)

以下是否符合您的要求?

for (i in 1:length(files)) {
  dat <- read.table(files[i], header = FALSE, sep = '\t')
  jpeg(file = paste(files[i], '.jpeg', sep = ''))
  plot(dat$V1, dat$V2)
  dev.off()
}

答案 1 :(得分:1)

与前两个类似,但更改了图表的文件名

files <- paste("fil",1:3,"depth.txt",sep="")      #  example file names
for( i in 1:length(files))  {
     filename <-  sub(".txt",".jpg",files[i])
     jpeg(file=filename)
     plot(1:(10*i))                             # example plots
     dev.off()
}

答案 2 :(得分:0)

重命名文件?

for (i in 1:length(files)) {
    file = files[i]
    file = paste("jpg",file,sep="_")
    jpeg(file)
    plot(read.table(files[i],header=F,sep="\t")$V1,read.table(files[i],header=F,sep="\t")$V2)
   dev.off()
}