我試圖在ggplot中繪製一個時間序列,這樣每年的值與geom_line()相關聯,並且總計在單獨的geom_point() x軸。繪製geom_line()和geom_point() - 不同長度的數據
我試圖審美子集內的數據,但得到的錯誤:
Aesthetics must be either length 1 or the same as the data (1): x, y
我也曾嘗試使用兩種不同的數據幀,但得到了類似的錯誤。對不起,如果這是一個基本的問題,但我沒有找到解決方案的運氣。
請參閱下面的啞數據集和ggplot2腳本。我希望最終的情節看起來像這樣,但沒有連接'2017'和'total'的行,最好不用訴諸在Adobe Illustrator中編輯輸出!
任何幫助表示讚賞。
library(ggplot2)
##synthetic data
Year <- seq(1996,2017)
var1 <- sample(0:10,length(Year), replace=TRUE)
var2 <- sample(0:10,length(Year), replace=TRUE)
var3 <- sample(0:10,length(Year), replace=TRUE)
var4 <- sample(0:10,length(Year), replace=TRUE)
total <- c("total",sample(0:10,4, replace=TRUE))
dat <- data.frame(Year, var1,var2,var3,var4)
dat <- rbind(dat,total)
plt <- ggplot(data=dat, aes(x=Year))
plt <- plt +
geom_point(aes(y=var1, colour = "var1")) +
geom_point(aes(y=var2, colour = "var2")) +
geom_point(aes(y=var3, colour= "var3")) +
geom_point(aes(y=var4, colour = "var4")) +
geom_line(aes(y=var1, group=1, colour = "var1")) +
geom_line(aes(y=var2, group=1, colour="var2")) +
geom_line(aes(y=var3, group=1, colour="var3"))+
geom_line(aes(y=var4, group=1, colour= "var4")) +
scale_colour_manual("",
breaks = c("var1", "var2", "var3", "var4"),
values = c("#d7191c","#fdae61","#abd9e9","#2c7bb6"))
提供由#rstats在良好的民間而不是編輯答案到你的問題,只是將它加入如下的回答(用適當的信貸) 。 – Axeman
感謝您的提問,不知道禮儀是什麼 – mlcyo