我正在尝试在单个图表上绘制多个时间序列GGPLOT。数据集是一个数据框第一列的日期格式为日期,名为Time,以及其他列上的时间序列,名为V1、V2...等等。
I tried:
gg1=ggplot() +
geom_line(data=PCA2, aes(x=Time, y=V2, group=1), lwd=1.1, color="red") +
geom_line(data=PCA2, aes(x=Time, y=V3, group=1), lwd=1.1, color="blue")+
scale_color_discrete(name = "PCA series", labels = c("V2", "V3"))
print(gg1)
但我刚刚得到这个(没有图例):
有人可以帮忙吗?它应该可以工作并且不会返回任何错误消息......
Thanks!
您必须重塑数据,使其成为“长”数据,即 V2 和 V3 变量中的值组合成一个新变量,另一个变量指示数据的特定行是否引用 V2 和 V3 。这是通过使用实现的pivot_longer()
来自tidyr
包裹。
这是使用 mtcars 变量的示例drat
and wt
其操作方式与 V2 和 V3 对数据集的操作方式相同:
library(tidyverse)
dat <- mtcars %>%
select(drat, wt) %>%
mutate(x_axis = row_number()) %>%
pivot_longer(c(drat, wt), names_to = "variable", values_to = "values")
dat
#> # A tibble: 64 x 3
#> x_axis variable values
#> <int> <chr> <dbl>
#> 1 1 drat 3.9
#> 2 1 wt 2.62
#> 3 2 drat 3.9
#> 4 2 wt 2.88
#> 5 3 drat 3.85
#> 6 3 wt 2.32
#> 7 4 drat 3.08
#> 8 4 wt 3.22
#> 9 5 drat 3.15
#> 10 5 wt 3.44
#> # ... with 54 more rows
ggplot(dat, aes(x = x_axis, y = values, colour = variable)) +
geom_line()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)