7

凡例が大きすぎるという問題があります。コードは次のとおりです。

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)

これにより、次の図が得られます。

グラフ

問題は、左側の凡例が大きすぎることです。ボックスの幅を制御するにはどうすればよいですか? 箱が大きすぎます。

データはここにあります: http://uploadeasy.net/upload/ocafq.rar

4

1 に答える 1

8

凡例の右側の空白は、手動でプロット ウィンドウを広げたことを示しています。凡例は、手動でサイズ変更するとうまくスケーリングされません。

解決策は、プロットする前に必要な正確なサイズのプロットを開くことです。Windows では、これはwindows(width=10, height=8). 単位はインチです。周囲のボックスは、テキストできつくなるはずです。

それでも満足できない場合は、次のことを試してください。

  1. 凡例のフォント サイズを小さくするcex=0.7
  2. 凡例の周りのボックスを削除し、凡例をいくつかの行に分割するためにbty = "n"使用します\n
  3. "topleft" 座標の代わりに使用して、凡例をさらに左側に配置できます

これが私がそれを行う方法です:

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)

ここに画像の説明を入力

于 2013-03-16T11:49:29.997 に答える