我有以下示例資料:
d <- data.frame(x = 1:3, y = 1:3, category = letters[1:3], p = c(TRUE, TRUE, FALSE))
我想按類別繪制這種著色。
ggplot(d, aes(x, y, color = category) geom_point(shape = "circle filled")
然后我想做填充:
p與 if的類別相同TRUE- 否則為白色
ggplot(d, aes(x, y, color = category, fill = ???) geom_point(shape = "circle filled")
有人有什么建議嗎?
我可否
- 訪問色階結果然后對其進行操作?
- 手動計算顏色和填充,但仍然有相同的圖例標簽?
uj5u.com熱心網友回復:
您可以使用fill = after_scale(color)將填充分配給與色標相同的值。使用after_scale(ifelse(p, color, "white")應該給你可選的白色填充值。
唯一的小問題是我們得到的通常的 NSE 在里面aes不起作用after_scale,所以我們需要使用d$p而不是僅僅p作為第一個引數ifelse
ggplot(d, aes(x, y, color = category))
geom_point(aes(fill = after_scale(ifelse(d$p, color, "white"))),
shape = "circle filled", size = 10)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476662.html
下一篇:使用scale_x_discrete(limits=(...)重新排序箱線圖(ggplot)會導致警告訊息:洗掉包含缺失值的103行(stat_boxplot)
