【发布时间】:2014-03-12 18:01:35
【问题描述】:
我正在努力绘制一个 ggplot,我需要在某个时间点后更改 geom_smooth。就像现在一样,我正在为整个系列应用平滑功能,但平滑线对于“xmin”之后的这段时间没有多大意义。所以,我想知道是否有办法让我无法为该标记绘制 geom_smooht 并进一步绘制。
library(ggplot2)
xmin <- as.Date("2012/10/08", "%Y/%m/%d") # Beginning and end of discontinuity
xmax <- as.Date("2012/11/01", "%Y/%m/%d")
data$brand <- factor(data$brand, levels = c("A","B","C", "Others", "Undecideds"))
g <- ggplot(data)
g <- g + geom_rect(aes(xmin = xmin, xmax = xmax, ymin = -Inf, ymax = Inf), fill = "#D8D8D8", alpha = .01)
g <- g + geom_point(aes(x=Date, y=Rating, colour=brand, group=interaction(brand, Event)), size=3.5)
g <- g + scale_color_manual(values=c("#0066FF","#00B206","#FF0000","#FFFFCC", "#D0D0D0"))
g <- g + geom_smooth(data=data, aes(x=Date, y=Rating, colour=brand, group=interaction(brand, Event)), method="loess", size=2, se=F)
g <- g + theme(legend.position="bottom")
print(g)
【问题讨论】:
-
如何将您的数据对象放入每个单独的 geom 调用中?即 geom_rect(data,aes(.... 那么对于 geom_smooth 调用,只需为您希望绘制的适当部分的数据子集 ... g+geom_smooth(data[rowsIwant, ],aes(....
-
@user3407340 你能提供一些数据吗?