我正在嘗試使用 {ggplot2} 使用來自 {datasets} 的資料框“swiss”來撰寫繪圖。我在 x 軸上繪制 Infant.Mortality 并在 y 軸上繪制 Fertility,并且我希望將這些點著色為透明的藍色或橙色,具體取決于它們是高于還是低于教育的中值。但是,當我繪圖時,我只會得到透明的藍點,并且圖例標題已關閉。
這是我必須到目前為止的代碼:
swiss$color[swiss$Education >= median(swiss$Education)] <- tBlue
swiss$color[swiss$Education < median(swiss$Education)] <- tOrange
ggplot(data = swiss)
geom_point(mapping = aes(x = Infant.Mortality, y = Fertility, color = color))
scale_color_manual(values = swiss$color,
labels = ">= median", "<median")
我也嘗試了這個問題中解釋的內容(
uj5u.com熱心網友回復:
使用 ggplot 我們通常不會創建顏色名稱列(這在基本圖形中很常見)。相反,通常的方法是在資料中創建一個帶有有意義標簽的列,如下所示:
swiss$edu_med = ifelse(swiss$Education >= median(swiss$Education), ">= Median", "< Median")
ggplot(data = swiss)
geom_point(mapping = aes(x = Infant.Mortality, y = Fertility, color = edu_med))
scale_color_manual(values = c(tblue, torange))
圖例標簽將從資料值自動生成。
可以按照您在問題中的方式進行操作,在這種情況下使用scale_color_identity(labels = ">= median", "< median")代替scale_color_manual().
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/523458.html
標籤:rggplot2
