我希望绘制一条曲线,其中一行以不同的颜色绘制,如下例所示:
test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
date = seq(as.Date("2002-01-01"), by="1 month", length.out=100)
)
plot <- ggplot(test_data, aes(x = date)) +
geom_line(aes(y = var0, group = 1, colour = c(rep(c("a", "b"), each = 25), rep("a", 50)))) +
geom_line(aes(y = var1, colour = "var1"))
plot
我在R中的情节或其他交互式库中有什么相同的情节(这样当在某个特定的线/点上移动鼠标时,可以显示带有一些数据的标签)。当我使用ggplotly
时,我会得到类似的内容
library(plotly)
ggplotly(plot)
你知道如何在一行中组合红线和绿线(在ggplot中通过group=1
参数完成)?
答案 0 :(得分:2)
问题出现了,因为没有数据,因为&#34; a&#34;对于26:50行(2004年和2005年左右)的小组作业。当ggplot强制连接第25行和第51行的点时,该行会跳转,它出现在ggplotly中。
这是我对长篇数据的尝试:
t2 <- test_data[26:50, ]
t2$gp <- "b"
test_data$gp <- "a"
df <- rbind(test_data, t2)
df <- gather(df, var, value, -date, - gp)
plot <- ggplot() +
geom_line(data=df %>% filter(var=="var0"), aes(x=date, y=value, colour=gp)) +
geom_line(data=df %>% filter(var=="var1"), aes(x=date, y=value, colour=var))
ggplotly(plot)