如何允许选定的点和置信区间显示在图表上?
How to allow selected points and confidence intervals to display on graph?
我有一个包含物种 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"))
您可以通过将数据框的过滤版本传递到每一层来实现此目的:
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 在概念上是两个不同的变量,您可能需要考虑转向更广泛的格式。
我有一个包含物种 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"))
您可以通过将数据框的过滤版本传递到每一层来实现此目的:
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 在概念上是两个不同的变量,您可能需要考虑转向更广泛的格式。