2017-04-18 95 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") 

這是我目前使用的一段代碼,是有沒有辦法讓R能夠色點,其中x軸值(那年在這裏)是女性和一個?

+0

顏色可以採取矢量例如col = 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

在這種情況下,factor(faculty)工作,因爲因素是內部從1對加計數整數。你可以看到每個數字都設置什麼顏色:

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

如果你想不同的顏色,你可以在faculty使用條件(如ifelse)本身,或者你可以定義調色板顏色(見?palette )。

+0

如果他只需要幾種顏色,他可以簡單地定義顏色矢量: 'my_colors <-c(「grey80」,「firebrick」,「navyblue 「,」orange「)' 並在圖中將其稱爲: 'col = my_colors [因子(df $ faculty)]' 比調色板更容易;) – Toshiro