我正在尝试添加垂直线,这些垂直线应该特定于每个情节方面。我尝试通过按照与绘图数据分组相同的过程对geom_vline数据进行分组来实现此目的。垂直数据来自与点不同的数据帧。下面的代码行就是我所拥有的。
plots <-
dd %>%
ggplot(aes(Date, TDS)) +
theme_bw() +
geom_point(aes(group = Well, color = Well), size = 1) +
ggtitle(paste("WMA A-AX TDS")) +
ylab("mg/L") +
geom_smooth(aes(group= Well), method = "loess", color = "black", se = FALSE) +
geom_vline(data = cpdates, aes(group = Well_LOC, xintercept=as.numeric(CPT_DATE)), color ="blue", lwd=0.5, lty=1) +
facet_grid(Well~.)但是,这段代码并没有对geom_vline数据进行分组,而是将所有行放入所有方面。分组适用于点和黄土线,为什么不适用于vline?

我尝试了许多方法来解决这个问题,但都不起作用。任何和所有的建议都将非常感谢。
发布于 2018-02-03 10:15:59
刻面不使用群体美学。这个图在Well上是多面的,所以cpdates需要一个Well变量。
这里有一些虚拟数据来重现这个有问题的图。
library('ggplot2')
library('dplyr')
cpdates <- data.frame(
Well_LOC = c(4, 5, 6, 8),
CPT_DATE = c(1, 2, 3,4))
dd <- data.frame(
Date = mpg$displ,
TDS = mpg$cty,
Well = mpg$cyl)
dd %>%
ggplot(aes(Date, TDS)) +
theme_bw() +
geom_point(aes(group = Well, color = Well), size = 1) +
ggtitle(paste("WMA A-AX TDS")) +
ylab("mg/L") +
geom_smooth(aes(group = Well), method = "loess", color = "black", se = FALSE) +
geom_vline(data = cpdates, aes(group = Well_LOC, xintercept=as.numeric(CPT_DATE)), color ="blue", lwd=0.5, lty=1) +
facet_grid(Well~.)

向cpdates添加Well可以解决此问题。我们也可以摆脱group的美感。
cpdates$Well = cpdates$Well_LOC
dd %>%
ggplot(aes(Date, TDS)) +
theme_bw() +
geom_point(aes(group = Well, color = Well), size = 1) +
ggtitle(paste("WMA A-AX TDS")) +
ylab("mg/L") +
geom_smooth(method = "loess", color = "black", se = FALSE) +
geom_vline(data = cpdates, aes(xintercept=as.numeric(CPT_DATE)), color ="blue", lwd=0.5, lty=1) +
facet_grid(Well~.)

https://stackoverflow.com/questions/48593011
复制相似问题