[R] Extending a plot in a loop
jim holtman
jholtman at gmail.com
Wed Nov 10 19:58:16 CET 2010
If you want to read in all the files and then set the range so you can
print a parameter from each one on a single chart, there is some
information in the archives about how to do this. A brief outline is
below (definitely untested)
allFiles <- lapply(fileList, read.table, header=TRUE, ... other parameters)
xRange <- range(sapply(allFiles, '[[', 'xParm')) # column with data of interest
yRange <- range(sapply(allFiles, '[[', 'yParm'))
plot(0, xlim=xRange, ylim=yRange, type='n') # setup the plot
lapply(allFiles, function(.file) lines(.file$xParm, .file$yParm)) #
plot all the line
On Wed, Nov 10, 2010 at 1:38 PM, Sebastian Gibb <lists at sebastiangibb.de> wrote:
> Am Mittwoch, 10. November 2010, 19:22:38 schrieb Nasrin Pak:
>> My problem is that I have a data set for every day of measurement in a
>> seperate file and I want to plot one parameter of the data for all the days
>> in one graph. I tried to use for loop but only the last data remains in the
>> program memory, I don`t know how to plot each day`s data continusly after
>> the others(or how to extending the x axis.) Would you please help me with
>> it?
>>
>> This a plot for one day:
>>
>> radiation.data
>> <-read.table("C:/updated_CFL_Rad_files/2008/RAD_2008_JD101_0410.dat",
>> header = TRUE,sep = ",", quote = " ", dec = ".")
>>
>> > attach(radiation.data)
>>
>> The following object(s) are masked from 'radiation.data (position 3)':
>>
>> Batt_avg, Batt_st, Day, Hour, Kdown_avg, Kdown_st, LW_in, LW_in_st,
>> Minute, Month, PanelT_avg, PanelT_st, PAR_avg, PAR_st, Sec,
>> Tcase_avg, Tcase_st, Tdome_avg, Tdome_st, Thermopile_avg,
>> Thermopile_st, Tuv_avg, Tuv_st, Uva_avg, Uva_st, Uvb_avg, Uvb_st,
>> Year
>>
>> > names(radiation.data)
>>
>> [1] "Year" "Month" "Day" "Hour"
>> [5] "Minute" "Sec" "Batt_avg" "PanelT_avg"
>> [9] "Batt_st" "PanelT_st" "Kdown_avg" "Thermopile_avg"
>> [13] "Tcase_avg" "Tdome_avg" "LW_in" "PAR_avg"
>> [17] "Tuv_avg" "Uvb_avg" "Uva_avg" "Kdown_st"
>> [21] "Thermopile_st" "Tcase_st" "Tdome_st" "LW_in_st"
>> [25] "PAR_st" "Tuv_st" "Uvb_st" "Uva_st"
>>
>> plot(((PAR_avg*0.216)/Uvb_avg),
>> main="Par/UVB",xlab="minutes",ylab="Par/UVB")
>>
>>
>> and this is the algorithm I tried for plotting all the data in one plot:
>>
>> x<- matrix( list.files("C:/updated_CFL_Rad_files",full=TRUE)) # putting all
>> data sets in a matrix
>> for(i in 1:100) {
>> if(i < 101) next
>> radiation.data <-read.table(x[i], header = TRUE,sep = ",", quote = "
>> ", dec = ".")
>> attach(radiation.data)
>> plot(i*Hour*60+Minute,PAR_avg,main="PAR",xlab="Hour",ylab="Par")
>> dev.print(device=postscript, "C:/graph5.eps", onefile=FALSE,
>> horizontal=FALSE)
>> }
>> The plot I see is the last file's plot, I don't know how to keep previous
>> data and continue within the same plot.
>
> Hello,
>
> use something like this:
> plot(0, 0, type="n", xlim=c(0, maxTime), ylim=c(minY, maxY))
>
> for ( i in 1:100) {
> lines(x[i], y[i]);
> }
>
> ?plot
> ?lines
> ?points
>
> Bye,
>
> Sebastian
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
More information about the R-help
mailing list