我有以下示例数据,想要创建一个水平图,显示area
列year
上的更改。有关使用ggplot2
执行此操作的任何建议吗?
year <- 1990:2005
area1 <- runif(16, 18,20)
area2 <- runif (16,6,6.7)
area3 <- runif(16, 7,8)
dat <- data.frame(year, area1, area2, area3)
答案 0 :(得分:4)
您可以使用ggplot_horizon
包中的ggTimeSeries
创建地平线图。您的数据样本对于良好的地平线图有点稀疏,因此我创建了一些虚假数据。以下示例基于ggTimeSeries
vignette。
# Fake data
set.seed(1)
df = data.frame(x = rep(1:1000,3), y = cumsum(rnorm(3000)) + 50,
group=rep(LETTERS[1:3], each=1000))
#devtools::install_github("Ather-Energy/ggTimeSeries")
#install.packages("viridis")
library(ggTimeSeries)
library(viridis)
ggplot_horizon(df, 'x', 'y', vcGroupingColumnNames='group', bandwidth=10) +
facet_grid(group ~ .) +
scale_fill_viridis(option="inferno")
答案 1 :(得分:2)
不确定你在寻找什么,但从这个结构开始,然后从那里开始。
dat <- reshape2::melt(dat, id.var = "year")
library(ggplot2)
ggplot(dat, aes(x = year, y = value, colour = variable)) + geom_point()