2016-07-04 23 views
2

Ich benutze Funktion fitdist in Paket fitdistrplus die beste Verteilung meiner Daten angepasst zu bekommen und die ppcomp Figur zeichnen, verwende ich den Beispiel-Codes von ?fitdistrplus meine Daten zu ersetzen und Codes.Wie man die Achsen von Null in Paket fitdistrplus in R starten

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

So weit, so gut! Aber schau dir die linke Seite des Bildes an, da ist Platz, oder die Achsen beginnen nicht bei Null!

Also habe ich gegoogled und zwei Methoden gefunden: Eine Methode im Basisplot, xaxs und yaxs werden verwendet.

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

base plot

Ein weiteres Verfahren in dem ggplot2 wird expand=c(0,0) verwendet.

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

expand

Also versuche ich, diese beiden Methoden zu verwenden, um die ppcomp Figur zu zeichnen,

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

aber Fehler tritt auf:

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

Also, was soll ich tun um das Ziel ohne den Fehler zu vervollständigen, oder was sind die richtigen Codes?

Antwort

1

Das Problem scheint zu sein, dass das ... Argument in ppcomp (was die zusätzlichen Argumente akzeptiert) sowohl plot gegeben und legend und legend nicht weiß, was mit xaxs zu tun.

Optionen sind:

1) Führen Sie ppcomp mit xaxs, die die Handlung machen, und fügen Sie dann die separat legend.

2) Verwenden Sie fix(ppcomp), um die ... aus den legend Befehlen zu löschen.

3) Recode ppcomp zu verwenden ggplot und stellen Sie die Optionen wie Sie möchten.

+0

Vielen Dank, mein Herr, ich habe Optionen 2 versucht, und es funktioniert. Aber was Optionen 1 betrifft, funktioniert es nicht. Und über Optionen 3 bin ich nicht gut im Codieren, also habe ich es nicht versucht. –