我有一個包含物種SP1 and SP2和非生物變數的資料集AB1 and AB2。我想將所有這些都繪制在圖表上,但要進行修改
點:在 SP1 和 SP2 上顯示,但不在圖形上的 AB1 和 AB2 點上顯示
線條:AB 線應該是黑色的虛線(請參閱無效的代碼嘗試)
置信區間:只有 SP 線需要有置信區間。置信區間的 alpha = 0.2
set.seed(111) var <- rep(c("SP1","SP2","AB1","AB2"), times = 5) var.val <- rnorm(20,5,1) level <- rep(c(100,200,300,400), each = 5) df <- data.frame(var, var.val, level) ggplot(df, aes(x = level, y = var.val, col = var, group = var)) geom_point(aes(fill = var),colour="white",pch=21, size=4, stroke = 1, alpha = 0.7, position = pd) theme_classic() geom_smooth(method="lm", formula = y ~ x ) scale_linetype_manual(values = c("dashed", "dashed","solid", "solid")) scale_colour_manual(values = c("black","black","red","blue"))

uj5u.com熱心網友回復:
您可以通過將資料框的過濾版本傳遞給每一層來實作這一點:
ggplot(df, aes(x = level, y = var.val, col = var, group = var))
geom_point(aes(fill = var), colour="white",pch=21, size=4, stroke = 1,
alpha = 0.7, data = df[df$var %in% c("SP1", "SP2"),])
theme_classic()
geom_smooth(data = df[df$var %in% c("SP1", "SP2"),],
method = "lm", formula = y ~ x, alpha = 0.2)
geom_smooth(data = df[!df$var %in% c("SP1", "SP2"),],
method = "lm", formula = y ~ x, se = FALSE, linetype = 2 )
scale_linetype_manual(values = c("dashed", "dashed","solid", "solid"))
scale_colour_manual(values = c("black","black","red","blue"))

雖然如果 AB 和 SP 在概念上是兩個不同的變數,您可能需要考慮轉向更廣泛的格式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471604.html
上一篇:對熱圖使用絕對顏色映射
下一篇:反轉離散資料的y軸
