2017-04-18 9 views
0

Rの中の散布図の特定の点を論理的な引数で色付けしようとしています。私のデータは性別(M/F)と教員(A/M/S/E)の関数です。私は、緑、赤、青、黒の各教員に色をつけて、白い中心を持つ女性だけをアウトラインとして表示したいと思います。プロットの着色点はR

plot(year, logit.prop, type="n", xlab="Year of graduation", ylab="Logit proportion of survivors", ylim=c(-1,3)) 
points(year[faculty=="M"], logit.prop[faculty=="M"], pch=21, 
points(year[faculty=="A"], logit.prop[faculty=="A"], pch=21, bg="red", col="red") 

これは私が現在使用しているコードのセクションで、x軸の値(ここではザッツ年)は、女性とAの両方で色点にRを指示する方法はありますか?

+0

色は、例えばベクトルをとることができる。 'my_colors <-c(" grey80 "、" firebrick "、" navyblue ")色のベクトルを定義することができます:color = ifelse(condition1&condition2、 'red'、 'black') –

答えて

1

@ mr.joshuagordonが述べたように、colと他の引数はpointsです。あなたがデータを提供しなかったので、ここでは何か:この場合

df <- data.frame(x = rep(1:4, each = 2), y = rep(1:2, times = 4), faculty = rep(c("A", "M", "S", "E"), each = 2), gender = rep(c("M","F"), times = 4)) 
df 
# x y faculty gender 
# 1 1 1  A  M 
# 2 1 2  A  F 
# 3 2 1  M  M 
# 4 2 2  M  F 
# 5 3 1  S  M 
# 6 3 2  S  F 
# 7 4 1  E  M 
# 8 4 2  E  F 
plot(y ~ x, data = df, pch = ifelse(gender == "M", 16, 21), col = factor(faculty)) 
text(y + 0.5 ~ x, data = df, labels = faculty) 

simple points

要因は内部までに1から数え整数であるので、factor(faculty)が働いていました。あなたが持つ各番号に設定されているものを色を見ることができます:あなたは別の色にしたい場合は

palette() 
# [1] "black" "red"  "green3" "blue" "cyan" "magenta" "yellow" 
# [8] "gray" 

は、あなたがいずれかのfacultyに自分自身を(例えばifelseなど)条件文を使用することができ、またはあなただけのパレット色を定義することができます(?paletteを参照してください)。

+0

"、" orange ")' とそれをプロットで呼び出してください: 'col = my_colors [factor(df $ faculty)]' パレットよりも簡単です; – Toshiro

関連する問題