1

残差対時間をプロットしており、プロットに黄土の滑らかな曲線を追加しています。Xスケールを対数スケールに変更すると、黄土の滑らかさが消えて、その後追加できません。x 軸の対数変換後にグラフを表示するように要求すると、RStudio で次のエラーが表示されます。

Error in seq.default(range[1], range[2], length = n) :'from' cannot be NA, NaN or infinite. 

私は何を間違っていますか?対数 x スケールにレス スムーズを追加するにはどうすればよいですか? 彼はプロットの私のコードです:

max.CWRES <- max(abs(data$CWRES),na.rm=T)
plotobj3 <- NULL
plotobj3 <-  ggplot(data[data$CONC!=0,])
plotobj3 <- plotobj3 + geom_point(aes(x=TIME, y=CWRES, colour=DOSE), shape=1, size=3)
plotobj3 <- plotobj3 + geom_abline(aes(x=TIME, y=CWRES),intercept=0, slope=0, colour="black")        

#Add loess smoothing line
plotobj3 <- plotobj3 + geom_smooth(aes(x=TIME, y=CWRES), method="loess", se=F, span=1.5,   colour="green")       
plotobj3 <- plotobj3+ scale_x_continuous(name="Time (hours)")
plotobj3 <- plotobj3+ scale_y_continuous(name="CWRES", limits=c(-max.CWRES ,max.CWRES))

# log scale for x-axis
plotobj3 <- plotobj3+ scale_x_log10(name="TIME (hours)")
plotobj3
4

1 に答える 1

4

ここでの問題は、 から開始することのようですTIME = 0。軸をlog10変換するxと、ログ時間は から始まります-Inf。(少なくとも loes の部分では) 以下のデータのみを使用する必要がありますTIME > 0

plotobj3 + geom_smooth(aes(x = TIME, y=CWRES), 
                       data = data[data$TIME > 0 & data$CONC != 0, ], #this is the crucial part
                       method = "loess", 
                       se = FALSE, 
                       span = 1.5,   
                       colour = "green")        

これは、モデル フィッティングに元のデータを使用することに注意してください。log10モデルのフィッティングにデータを使用したい場合は、aes(x=log10(TIME), y=CWRES)代わりにどこでも使用できますaes(x=TIME, y=CWRES)

于 2014-11-07T08:57:21.120 に答える