[R] Resolution issue with exporting plots from R and write tables in Latex code for producing pdf document

Duncan Murdoch murdoch.duncan at gmail.com
Fri Jun 8 12:53:13 CEST 2012


On 12-06-08 6:46 AM, yhj204 at googlemail.com wrote:
> Dear Duncan
>
>
>
> Thanks a lot for your hints.
>
> As you can see from my code (just one line above the command using dev.copy) I have tried using pdf but got same problem, so I hushed it out.

That's not the right place to put the pdf() call, it should appear 
before any of the graphing calls.  To keep the pdf resolution, you need 
to plot to the pdf device.

Duncan Murdoch

>
> Any ideas??
>
> Many thanks!
>
> HJ
> Sent using BlackBerry® from Orange
>
> -----Original Message-----
> From: Duncan Murdoch<murdoch.duncan at gmail.com>
> Date: Fri, 08 Jun 2012 05:21:52
> To: HJ YAN<yhj204 at googlemail.com>
> Cc: r-help at r-project.org<r-help at r-project.org>
> Subject: Re: [R] Resolution issue with exporting plots from R and write tables
>   in Latex code for producing pdf document
>
> On 12-06-07 10:08 PM, HJ YAN wrote:
>> Dear R users
>>
>> I am trying to exporting plots from R to an external folder, or to the
>> working directory, but the resolution of plots (pdf file) largely reduced.
>> Any way I can get same quality as my original plots?? e.g. I tested the
>> plotting part using one example and obtained pretty good (/readable)
>> quality for each plot in the (4*4) multiple graph. But when I did the loop
>> and tried to export those plots out using 'dev.copy', the quality was not
>> same. I do need this loop function as there are 400 datasets so I can not
>> handle them manually.
>
> Don't use dev.copy.  Use pdf() then dev.off() to produce the plots in
> the first place.
>
>
>>
>> Also I am using 'xtable' to write Latex code for my summary tables of the
>> data (again there are 400 datasets). I saved those Latex code in a list and
>> use 'sink()' to save them outside the loop function, which works ok. But as
>> my table is wide, so I found that the Latex code produced by xtable can not
>> fit my purpose well, e.g. I have set size to 'tiny' but the table still too
>> wide. Is there an alternative package more handy to do the job? Also are
>> there a good way to write some hundred tables from R to Latex for producing
>> pdf documents in an easier fashion?? i.e. Just realised that Latex does not
>> like compiling large amount tables/figures in one go!
>
> latex has a lot of packages for handling large tables, but it may be
> better to redesign your table to not be so wide.  The tables package
> might help with this, but it doesn't have any particular support for
> wide tables.
>
> Duncan Murdoch
>
>
>
>>
>> Any advices/ideas are greatly appreciated!
>>
>>
>> Best wishes
>> HJ
>>
>>
>>
>>
>> Below is my code...
>> =====================
>> SumTab<-function(Data=SortedDataInList,StartDate="30/1/12",EndDate="31/05/12",StartTime="22:50:00",EndTime="23:00:00"){
>>     Start= chron(StartDate,StartTime , format=c(dates="d/m/y", times="h:m:s"))
>>     End= chron(EndDate,EndTime , format=c(dates="d/m/y", times="h:m:s"))
>>     deltat<- times("00:10:00")
>>     TT<- seq(Start,End, by = times("00:10:00"))
>>     TT1 = substr(TT, 2, 18)
>>
>>
>>     Data1=Data
>>     for (i in 1:length(Data1)){
>>       SumTab1[[i]]= matrix(NA, nrow=5, ncol=ncol(SortedDataInList[[i]])-4)
>>       SortedDataInList1[[i]]= matrix(NA, nrow=length(TT1),
>> ncol=ncol(Data1[[i]]))
>>
>> SortedDataInList1[[i]]=Data1[[i]][match(as.character(TT1),as.character(Data1[[i]][,1])),]
>>
>>
>>       SumTab1[[i]][1,]<-apply(SortedDataInList1[[i]][,4:16],2,min)
>>       SumTab1[[i]][2,]<-apply(SortedDataInList1[[i]][,4:16],2,mean)
>>       SumTab1[[i]][3,]<-apply(SortedDataInList1[[i]][,4:16],2,median)
>>       SumTab1[[i]][4,]<-apply(SortedDataInList1[[i]][,4:16],2,sd)
>>       SumTab1[[i]][5,]<-apply(SortedDataInList1[[i]][,4:16],2,max)
>>
>>
>>
>> colnames(SumTab1[[i]])=c("vOL1","VOL2","VOL3","CUR1","CUR2","CUR3","THD1","THD2","THD3","RPD","RPR","RAPD","RAPR")
>>       rownames(SumTab1[[i]])=c("Min","Mean","Standard
>> Deviation","Median","Max")
>>
>>
>> SumLax[[i]]<-xtable(SumTab1[[i]],label=as.character(StationsInDir[i]),caption=as.character(StationsInDir[i]))
>>
>>
>>       par(mfrow=c(4,4),oma=c(4,0,2,0))
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,4],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Voltage
>> 1 (v)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,5],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Voltage
>> 2 (v)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,6],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Voltage
>> 3 (v)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,7],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Current
>> 1 (A)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,8],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Current
>> 2 (A)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,9],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Current
>> 3 (A)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,10],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Total
>> harmonic distortion 1 (%)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,11],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Total
>> harmonic distortion 2 (%)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,12],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Total
>> harmonic distortion 3 (%)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,13],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Real
>> power delivered  (mw)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,14],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Real
>> power received  (mw)",xlab="Date/Time ind.(10 min. int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,15],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Reactive
>> power delivered (MVAr)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>
>> plot(1:length(SortedDataInList1[[i]][,1]),SortedDataInList1[[i]][,16],xlim=c(1,length(SortedDataInList1[[i]][,1])),ylab="Reactive
>> power received (MVAr)",xlab="Date/Time ind.(10 min.
>> int.)",type="p",cex=.001)
>>       title(main=StationsInDir[i],outer=TRUE,cex.main=2.0)
>>       mtext(side=1,Start, outer = TRUE, line=0,cex = 0.6)
>>       mtext(side=1,End, outer = TRUE, line=2,cex = 0.6)
>>
>>
>>       #pdf(paste(as.character(StationsInDir[i]),".pdf"))
>>       dev.copy(pdf,file=paste(as.character(StationsInDir[i]),".pdf"))
>>       dev.off()
>>
>>     }
>> }
>>
>> 	[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>



More information about the R-help mailing list