2016-06-24 31 views
-1

我有以下示例数据并想创建水平图,显示列在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) 

回答

4

您可以使用ggplot_horizonggTimeSeries包地平线情节。您的数据样本对于良好的地平线情节有点稀疏,所以我创建了一些假数据。以下示例基于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") 

enter image description here

+0

谢谢你,这些应该是彼此分开的,以便他们你有3个水平的情节,颜色方案代表价值。 –

+0

当你说“颜色方案代表价值”时,你是说你希望颜色根据色带的高度在色带内水平变化? – eipi10

+0

是的,我想要这样的事情:[link](http://www.r-bloggers.com/horizo​​n-plots-with-ggplot-not/) –

2

不能确定你要找的内容,但这个结构开始,并从那里走。

dat <- reshape2::melt(dat, id.var = "year") 
library(ggplot2) 
ggplot(dat, aes(x = year, y = value, colour = variable)) + geom_point() 
+0

谢谢,请看我上面的评论。 –