2016-06-22 8 views
0

軸ラベルをさまざまな色でプロットしようとしています。このコードを使用する:異なる色で軸ラベルをプロットできません( "グラフィカルパラメータ 'col.axis'の長さが間違っています)

handball <- c(1.8, 1.72, 1.7, 1.65, 1.78, 1.68, 1.85, 1.72, 1.78, 1.79, 1.64, 1.74, 1.82, 1.77, 1.80, 1.84, 1.83, 1.80, 1.90, 1.82, 1.69, 1.78, 1.70) 
hist(handball, prob = TRUE, col = "grey", axes = FALSE, xlab = NULL, ylab = NULL, xlim = c(min(handball), max(handball))) 
lines(density(handball), col = "blue", lwd = 2) 
lines(density(handball, adjust = 2), lty = "dotted", col = "darkgreen", lwd = 2) 
axis(side = 1, at = c(min(handball), quantile(handball, 1/4), median(handball), quantile(handball, 3/4), max(handball)), labels = c(min(handball), quantile(handball, 1/4), median(handball), quantile(handball, 3/4), max(handball)), col.axis = c("black", "black", "red", "black", "black")) 

私はこのエラーを取得する:

Error in axis(side = 1, at = c(min(handball), quantile(handball, 1/4), : 
    graphical parameter "col.axis" has the wrong length 

は私が間違って何をしているのですか?

+2

'?par':_" col.axis:軸の注釈に使用される色です。デフォルトは "黒"です。 "_。これは長さが1のベクトルです。あなたはそのような異なる色を設定することはできません。 – lukeA

+0

ありがとう、@lukeA、私は各色のために1つ、2つの軸をプロットする必要があります... –

+0

@what yep、 'at < - c(min(ハンドボール)、quantile(ハンドボール、1/4)、中央値ハンドボール、ハンドボール、ハンドボール)、名前(at)< - c( "黒"、 "黒"、 "赤"、 "黒"、 "黒"); for(x (at))軸(side = 1、at = at [x]、col.axis = names(at)[x]) 'または何か。 – lukeA

答えて

0

@lukeAは、コメントでcol.axisは1つの値しか取ることができないと指摘しました。

axis(side = 1, at = c(median(handball)), labels = c(median(handball)), col.axis = "red") 
axis(side = 1, at = c(min(handball), quantile(handball, 1/4), quantile(handball, 3/4), max(handball)), labels = c(min(handball), quantile(handball, 1/4), quantile(handball, 3/4), max(handball))) 

は今も元気になります:あなたは多くの色を持っている場合

enter image description here

Hereは理にかなっているカスタム関数を使用して、別のソリューションであり、だから私は二つの軸、各色ごとに1をプロットしかし、私は単に2つの色だけを使って、軸コードを複製し、望ましくない値を削除することがより簡単で簡単であることを発見しました。

関連する問題