2013-03-15 10 views
7

mam ten problem, że moja legenda jest zbyt duży, mój kod:Legenda Szerokość okna nie skorygować przy użyciu par

par(mfrow=c(1,2)) 
hist(alvsloss,breaks = 100, freq=F,main="Histogramm, 
density curve (gaussian kernel) \n and fitted normal distribution of Allianz simple losses ",xlim=c(-0.15,0.15),xlab="loss",ylab="density",cex.axis=1.2,cex.lab=1.2) 
lines(density(alvsloss), col="black", lwd=2) 
curve(dnorm(x, mean = mean(alvsloss), sd = sd(alvsloss)), add=TRUE, col="black",lwd=2,lty="dotted") 

legend(-0.155, 30, c("(Gaussian) Kernel density","fitted normal distribution"),lwd=2, cex=0.8, 
    col=c("black","black"), lty=1:2) 


qqnorm(alvsloss,main="normal QQ Plot",cex.axis=1.2,cex.lab=1.2) 
qqline(alvsloss) 

To daje następujący obraz:

Graphs

Problem jest to, że legenda po lewej stronie jest zbyt duża, jak mogę kontrolować szerokość pudełka? Pudełko jest o wiele za duże.

dane można znaleźć tutaj: http://uploadeasy.net/upload/ocafq.rar

+0

Bez 'avsloss' obiektu, Twój przykład nie jest powtarzalna. – juba

+0

@juba dane zostały dodane –

+0

dane nie są już dostępne (tak jak w przypadku wszystkich twoich innych wpisów, w których używasz uploadeasy.net dla zbioru danych alvloss). byłoby naprawdę pomocne umieszczenie danych (lub ich losowej podpróbki) w samym poście. –

Odpowiedz

8

białą przestrzeń po prawej stronie z was legenda mówi mi, że ręcznie rozszerzyły się okno wydruku. Legendy nie są skalowane, jeśli chodzi o ręczną zmianę rozmiaru.

Rozwiązanie polega na otwarciu wykresu o dokładnej wielkości potrzebnej przed wydrukowaniem. W systemie Windows odbywa się to za pomocą windows(width=10, height=8). Jednostki są w calach. Otaczające pole powinno być teraz ściślejsze z tekstem.

Jeśli jest nadal niezadowalająca, należy spróbować:

  1. Zmniejszenie rozmiaru czcionki legendy cex=0.7
  2. wyjęciu pojemnika wokół legendy bty = "n" i korzystania \n do podzielić swoją legendę na kilku liniach
  3. Możesz umieścić swoją legendę jeszcze bardziej po lewej stronie, używając "topleft" zamiast współrzędnych

Oto jak zrobiłbym to:

legend("topleft", 
legend=c("(Gaussian)\nKernel\ndensity","Fitted\nnormal\ndistribution\n"), 
bty = "n",lwd=2, cex=0.7, col=c("black","black"), lty=1:2) 

enter image description here