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()

 

 

Thx,

Thomas


	[[alternative HTML version deleted]]

