3

fitdistパッケージ内の関数を使用fitdistrplusして、データに最適な分布を取得し、図を描画します。データとコードを置き換えるためにppcomp、のサンプル コードを使用します。?fitdistrplus

data(groundbeef)
serving <- groundbeef$serving
fitW <- fitdist(serving, "weibull")
fitg <- fitdist(serving, "gamma")
fitln <- fitdist(serving, "lnorm")
ppcomp(list(fitW, fitg, fitln), legendtext=c("Weibull", "gamma", "lognormal"))

ppcomp

ここまでは順調ですね!しかし、写真の左下を見てください。スペースがあるか、軸がゼロから始まっていません!

だから私はググって2つの方法を見つけました.1つの方法はベースプロットにxaxsありyaxs、使用されています。

set.seed(1234)
x <- runif(100, min=0, max=100)
y <- runif(100, min=0, max=100)
plot(x,y,xaxs="i",yaxs="i",xlim=c(0,100),ylim=c(0,100))

ベースプロット

の別の方法ggplot2expand=c(0,0)使用されます。

df <- data.frame(x=x,y=y)
ggplot(df,aes(x,y)) + geom_point() + scale_x_continuous(expand = c(0,0)) + scale_y_continuous(expand = c(0,0))

拡大

そこで、この2つの方法を使ってppcomp図を描いてみます。

ppcomp(list(fitW, fitg, fitln), legendtext=c("Weibull", "gamma", "lognormal"),xaxs="i",yaxs="i")

しかし、エラーが発生します:

Error in legend(x = xlegend, y = ylegend, bty = "n", legend = legendtext,  : 
  unused arguments (xaxs = "i", yaxs = "i")

それで、エラーなしで目標を達成するにはどうすればよいですか、または正しいコードは何ですか?

4

1 に答える 1

1

問題は...ppcomp(余分な引数を受け入れる) の引数が と の両方plotに与えられており、legendlegendどう処理すればよいかわからないことですxaxs

オプションは次のとおりです。

1) で実行ppcompしますxaxs。これにより、プロットが作成され、legend個別に追加されます。

2)コマンドからfix(ppcomp)を削除するために使用します。...legend

3)ppcomp使用するように再コーディングし、必要に応じggplotてオプションを設定します。

于 2016-07-04T08:28:01.483 に答える