我試圖做類似https://stackoverflow.com/a/29649406/15485,但我得到的錯誤geom_rect和GGPLOT2錯誤:美學必須是長度爲1或相同的數據(2)
Error: Aesthetics must be either length 1 or the same as the data (2): xmin, xmax, ymin, ymax, x, y
什麼「(2)」手段?
涉及什麼「美學」?我在ggplot
aes
和aes
在geom_rect
,但我不知道如何解決這些問題的想法,我很害怕我永遠不會掌握ggplot
...
days<-rep(Sys.Date(),100)+seq(1,100)
v<-sin(as.numeric(days))
df<-data.frame(days=days,v=v)
shade <- data.frame(x1=c(as.Date('2017-10-15'),as.Date('2017-11-11')),
x2=c(as.Date('2017-10-20'),as.Date('2017-11-13')),
y1=c(-Inf,-Inf), y2=c(Inf,Inf))
library(ggplot2)
plot(ggplot(df,aes(x=days,y=v))
+geom_line()
+geom_rect(data=shade,
mapping=aes(xmin=x1, xmax=x2, ymin=y1, ymax=y2), color='grey', alpha=0.2)
+geom_point())
順便說一句,'(2)'意味着'data'的長度目前是2.也就是說,美學只允許爲1或2,如目前定義的那樣。 @ Z.Lin's顯示了爲什麼。 – Axeman