2010-11-17 5 views
2

初心者ここにあります。私は基本的にヒストグラムを超える分布の曲線をプロットしたいヒストグラム上の曲線をプロットするときの軸の制限に問題があります

png(Test.png) 
ht=hist(step[i],20) 
curve(insert_function_here,add=TRUE) 

:私はこのような何かを行くビットを持っているグラフを作成するためのスクリプトを持っています。私の問題は、曲線の代わりにヒストグラムによって軸の限界が明らかに設定されているため、曲線が時々Y軸の限界から外れることです。私はpar( "usr")と一緒に遊んだことがありません。ヒストグラムまたはカーブ(または、カーブのみ)の最大値に基づいて軸の限界を設定する方法はありますか?これが何か変更された場合、これは、そのような複数のグラフがプロットされ、一連のサブプロット(par( "mfrow"))内にあるforループ内で実行される必要があります。

答えて

1

最初にカーブをプロットしてから、plot = FALSEでヒストグラムを計算し、ヒストグラムオブジェクトのplot関数をadd = TRUEでプロットに追加することができます。

カーブの最高y値(カーブの性質によってこれを行うショートカットがあります)とヒストグラムの最高バーを計算し、この値をylim引数に与えますヒストグラムをプロットするときに使用します。

2

max(curve_vector、ht $ counts)を設定してylim =(0、mx)を設定すると、 Rプロット関数ではなく、モデル選択関数です。だから私はこれがMatlabのコードであるか、他のイディオムであると推測しています。 Rで、これを試してみてください。他の回答に触発

set.seed(123)  
png("Test.png") 
ht=hist(rpois(20,1), plot=FALSE, breaks=0:10-0.1) 
# better to offset to include discrete counts that would otherwise be at boundaries 
plot(round(ht$breaks), dpois(round(ht$breaks), # plot a Poisson density 
     mean(ht$counts*round(ht$breaks[-length(ht$breaks)]))), 
     ylim=c(0, max(ht$density)+.1) , type="l") 
plot(ht, freq=FALSE, add=TRUE) # plot the histogram 
dev.off() 
+0

これはRです。関連するビットを抽出しようとすると、コードが単純化されました。 – Guillaume

3

が、これは私がやってしまったものです:それはカーブやヒストグラムのいずれかの最高に基づいて境界を修正

curve(insert_function_here) 
boundsc=par("usr") 
ht=hist(A[,1],20,plot=FALSE) 
par(usr=c(boundsc[1:2],0,max(boundsc[4],max(ht$counts)))) 
plot(ht,add=TRUE)  

関連する問題