2016-07-26 15 views
1

いくつかのデータの確率密度関数をプロットしようとしていますが、これはy=0とx軸の間の距離があることがわかります。私はyaxs="i"を設定しようとしましたが、x軸は灰色になります。解決策はありますか?ありがとう。ここにあなたが見ることができるように、x軸の色がグレーになります例Rのy軸をy = 0で始めるように強制し、色を維持する方法は?

set.seed(100) 
plot(density(rnorm(100)),xlab="",ylab="",main="") 

enter image description here

plot(density(rnorm(100)),yaxs="i",xlab="",ylab="",main="") 

です。それを黒くするには? enter image description here

答えて

2

あなたは灰色の線を取得する理由は、あなたがplotにオブジェクトクラスdensityを渡すときにplot.densityを呼び出しているということです。 plot.densityzero.line引数を持ち、これはTRUEに設定され、デフォルトでabline(h = 0, lwd = 0.1, col = "gray")を使用して灰色の線をプロットします(コードについてはstat:::plot.densityを参照)。 zero.lineをFALSEに設定する必要があります。

plot(density(nums), yaxs="i", 
    xlab="", ylab="", main="", 
    zero.line = FALSE) 

enter image description here

あなたはyaxs = "i"がそうでなければ与えるよりも上部にあるいくつかのより多くの部屋を与えたい場合は、あまりにも上位ylimを制御することができます。もちろん、灰色のゼロラインをプロットしない場合は、まだzero.line = FALSEが必要です。

plot(density(nums), yaxs="i", 
    xlab="", ylab="", main="", 
    zero.line = FALSE, 
    ylim = c(0, 0.5)) # put whatever you want here instead 0.5 

代替ソリューションは、他のラインと灰色の線をカバーするために、次のようになります。

plot(density(nums), yaxs="i", 
    xlab="", ylab="", main="") 
abline(h = 0) 
+0

ありがとうございました。あなたは素晴らしいです。 'zero.line = FALSE'は動作しますが、' ylim'を設定しても動作しません。どうもありがとう。 –

-1

ylimを指定した場合は正常に動作します。

d <- density(rnorm(100)) 
plot(d, xlab = "", ylab = "", ylim = c(0,max(d$y)), yaxs = "i") 

あなたはまた0から始まると色を保つこと、すなわち、次のように

par(col.axis = "black") 

が見え指定することができます。

d <- density(rnorm(100)) 
plot(d, xlab = "", ylab = "", ylim = c(0,max(d$y)+.05), yaxs = "i", 
    col.axis = "black") 

enter image description here

+0

はあなたの助けをありがとう、それは動作しません。 –

+0

実際にエラーを再現することはできません。 'plot(密度(rnorm(100))、yaxs =" i "、xlab =" "、ylab =" "、main =" ")'は普通の黒い軸を与えます。 – shayaa

+0

こんにちは、あなたのコードをコピーして実行しましたが、x軸はまだグレーです。私はRバージョン3.3.1を使用しています。ありがとう。 –

関連する問題