2
如果我有樣本數據,並使用GGPLOT2 geom_segment繪製它:如何特定一組細分的顏色? řGGPLOT2
library(ggplot2)
df1 <- data.frame(p=c(1,2), f=c("A","B"))
df2 <- data.frame(p=c(3,4), f=c("C","D"))
ggplot() +
geom_segment(data=df1, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f)) +
geom_segment(data=df2, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f))
結果圖將是:
我不理解爲什麼兩個單獨geom_segment()層份額相同的傳說?這種行爲背後的邏輯是什麼?
如何手動設置線「A」和線「B」的顏色? 我曾嘗試用下面的命令來改變他們:
ggplot() +
geom_segment(data=df1, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f)) +
scale_color_manual(values=c("A"="red", "B"="blue")) +
geom_segment(data=df2, mapping=aes(x=p-0.5, xend=p+0.5, y=1, yend=1, color=f))
但出現錯誤消息:
Error: Insufficient values in manual scale. 4 needed but only 2 provided.
非常感謝你
'顏色'是一個唯美的,並將親只有一個傳說,即使你使用'color'作爲多個geoms中的審美映射。 'scale_color_manual'需要許多顏色等於映射到顏色審美(所有情況下爲4)的所有變量中唯一值的數量。四個值的默認顏色是'hcl(seq(15,375,length = 5)[1:4],100,65)',或者一般情況下,當有n個不同級別的變量映射到顏色「hcl (seq(15,375,length = n + 1)[1:n],100,65)'.. – eipi10
啊哈,謝謝eipi10。我能理解他們爲什麼現在分享相同的傳奇。 –
ggplot2是否在內部使用這個函數「hcl(seq(15,375,length = n + 1)[1:n],100,65)」來提取顏色審美?據我所知,如果我只想改變它們中的一種顏色,我應該用其他期望的值代替它。 –