[R] jpeg and margin text

Jim Lemon jim at bitwrit.com.au
Sun Mar 2 12:51:03 CET 2008


Thomas Schwander wrote:
> Hi guys,
> 
>  
> 
> I use R 2.6.2 and Windows XP.
> 
>  
> 
> I’ve got the following question: I wrote a lot of text into the margin of a
> plot. When I use the “jpeg”-function, only a little part of the margin text
> is displayed in the final jpeg? Any ideas to change it?
> 
>  
> 
> Source-Code:
> 
>  
> 
>             datenbankdaten<-data.frame(LETTERS[1:20],
> 
> c(8,4.8,3.8,2.7,2.6,2.1,2,1.9,1.6,1,0.99,0.98,0.98,0.97,0.96,.96,0.8,0.8,0.7
> ,0.6),
> 
> c(8,4.8,3.8,0,2.6,2.1,2,1.9,1.6,1.1,0.99,0.98,0.97,0.97,0.96,.95,0.8,0.8,0,0
> .6))
> 
>  
> 
> Zugehoerigkeit<-LETTERS[1:20]
> 
>  
> 
> Bezeichnung<-letters[1:20]
> 
>  
> 
> colnames(datenbankdaten)<-c("Bezeichnung","A","B")
> 
>  
> 
> # par = Setzt die Grafikparameter, die durch plot automatisch verwendet
> werden 
> 
> # mar = Anzahl der Textzeilen von den inneren Achsen des Schaubild zum Rand
> 
> # Zeilenvektor: c(bottom, left, top, right)
> 
> par(mar=c(3,4,4,25),family="serif")
> 
>  
> 
> Fontparameter<-1
> 
>  
> 
> today<-Sys.Date()
> 
> Vormonat<-Sys.Date()-20
> 
>  
> 
> Stand_aktuell<-format(today, "%B %Y")
> 
> Stand_Vormonat<-format(Vormonat, "%B %Y")
> 
> jpeg(paste("C:\\TOP-20.jpeg",sep=""),quality=100,width=1024, height=768)
> 
>  
> plot(datenbankdaten[,2],ylim=c(0,max(datenbankdaten[,2],datenbankdaten[,3]))
> ,
> 
>   xlab="", ylab="",
> 
>  
> font.axis=Fontparameter,font.lab=Fontparameter,font.main=Fontparameter,font.
> sub=Fontparameter,
> 
>   bty="n",axes=F)
> 
>   axis(1,at=1:20,label=rep("",20))
> 
>   axis(1,at=1:9,label=sprintf("0%.0f",1:9))
> 
>   axis(1,at=10:20,label=10:20)
> 
>   Maximum<-max(datenbankdaten[,2],datenbankdaten[,3])
> 
>   axis(2,at=0:Maximum,label=sprintf("%.2f",0:Maximum))
> 
>   for(i in 1:(length(datenbankdaten[,2])+2)){
> 
>             abline(h=i-1)
> 
>   }
> 
>   for(i in 1:20){
> 
>             if(datenbankdaten[i,2]>=datenbankdaten[i,3]) farbe="red" else
> farbe="green"
> 
>  
> arrows(i,datenbankdaten[i,2],i,datenbankdaten[i,3],col=farbe,length=0,lwd=1.
> 5)
> 
>             points(i,datenbankdaten[i,2],pch=22,col="light blue",bg="light
> blue",cex=1.7)
> 
>  
> points(i,datenbankdaten[i,3],pch=21,col="grey",bg="grey",cex=1.5)
> 
>   }
> 
>   
> 
>   for(i in 1:20){
> 
>             if(datenbankdaten[i,2]>datenbankdaten[i,3])
> 
>                         #dreieck nach oben
> 
>  
> points(i,datenbankdaten[i,2]-0.1,pch=24,col="red",bg="red")
> 
>             if(datenbankdaten[i,2]<datenbankdaten[i,3])
> 
>                         #dreieck nach unten
> 
>  
> points(i,datenbankdaten[i,2]+0.1,pch=25,col="green",bg="green")
> 
>   }
> 
>   # Legend muss noch in die Ränder geschrieben werden, würde besser aussehen
> 
>  
> 
> Verkleinern<-0.8
> 
>  
> 
> for(i in 1:20){
> 
>  
> 
> if(i<=9) text(par("usr")[2] + 0.5, Maximum-(i-1)*0.4, srt=0, adj = 0, labels
> = sprintf("0%.0f",i),xpd = TRUE,cex=Verkleinern)
> 
> else text(par("usr")[2] + 0.5, Maximum-(i-1)*0.4, srt=0, adj = 0, labels =
> i,xpd = TRUE,cex=Verkleinern)
> 
>  
> 
>             text(par("usr")[2] + 1, Maximum-(i-1)*0.4, srt=0, adj = 0,
> labels = Zugehoerigkeit[i], 
> 
>             xpd = TRUE,cex=Verkleinern)
> 
>             text(par("usr")[2] + 3.6, Maximum-(i-1)*0.4, srt=0, adj = 0,
> labels = Bezeichnung[i], 
> 
>             xpd = TRUE,cex=Verkleinern)
> 
> }
> 
>  
> 
> lines(c(par("usr")[2] + 0.4,par("usr")[2] +
> 0.4),c(Maximum+0.1,0.25),xpd=TRUE)
> 
> lines(c(par("usr")[2] + 11.5,par("usr")[2] +
> 11.5),c(Maximum+0.1,0.25),xpd=TRUE)
> 
> lines(c(par("usr")[2] + 0.9,par("usr")[2] +
> 0.9),c(Maximum+0.1,0.25),xpd=TRUE)
> 
> lines(c(par("usr")[2] + 3.45,par("usr")[2] +
> 3.45),c(Maximum+0.1,0.25),xpd=TRUE)
> 
>  
> 
> Abstand<-Maximum-0.15
> 
>  
> 
> # aktueller Standpunkt
> 
> for(i in 1:20){
> 
>             lines(c(par("usr")[2] + 0.4,par("usr")[2] +
> 11.5),c(Maximum+0.1-Abstand*(i-1)/20,Maximum+0.1-Abstand*(i-1)/20),xpd=TRUE)
> 
> }
> 
> lines(c(par("usr")[2] + 0.4,par("usr")[2] + 11.5),c(0.25,0.25),xpd=TRUE)
> 
>  
> 
> #Ende Test
> 
>  
> 
> legend("topright",legend=c(Stand_aktuell,Stand_Vormonat),pch=c(22,21),
> 
> bty="o",pt.bg=c("light blue","grey"),cex=0.8,bg="white")
> 
>  
> 
> dev.off()
> 
Hi Thomas,
You seem to have a very wide table on the right of the plot, try this:

x11(width=10,height=7)
par(mar=c(5,4,4,20))
plot(...

Jim



More information about the R-help mailing list