2016-11-23 5 views
1

標準的なプロットを作成し、さまざまな自由度のt分布の密度プロットを呼び出すforループを使用する関数がRにあります。プロットは次のようになりますユーザ定義関数でプロット軸を調整する - R

enter image description here

注自由= 2度の濃度は、y軸の範囲の外に延びています。 forループを編集して、描かれる濃度線の範囲に応じて軸の範囲が調整されるようにする方法があるのだろうかと思います。

のIは以下の通りである。使用していたループコードのために:forループの内側と呼ばれる

N <- 1000 
n <- c(25,50,100,200) 
df<-c(1:4,seq(5,25,by=5)) 

histPlot <- function(data) { 
    x <- seq(-4, 4, length=100) 
    y <- dnorm(x, mean=0, sd=1) 

    plot(x, y, type="l", 
     main=paste("Distribution of size", nrow(data)/9000, sep=" "), 
     xlab="standard deviation") 
    colors <- brewer.pal(n = 9, name = "Spectral") 
    i<-1 
    for (d in df) { 
    lines(density(data[data$df==d, "t"]),col=colors[i]) 
    legend("topright", pch=c(21,21), col=c(colors, "black"), legend=c(df, "normal"), bty="o", cex=.8) 
    i <- i+1 
    } 
} 

答えて

0

lines機能は、既存のプロットまで追加します。

これは、plotファンクションコールのylimパラメータを変更する必要があることを意味します。これにより、より高いプロットが作成され、追加されると線が表示されます。

このようにしてみてください。

plot(x, y, type="l", 
    main=paste("Distribution of size", nrow(data)/9000, sep=" "), 
    xlab="standard deviation", 
    ylim = c(0, 1)) # This line will make the plot higher, i.e. the y axis range will be from 0 to 1 
関連する問題