R - ggplot2并行分类图

时间:2016-10-20 11:06:14

标签: r ggplot2

我正在使用分类纵向数据。我的数据有3个简单的变量,例如:

       id variable value
1       1        1     c
2       1        2     b
3       1        3     c
4       1        4     c
5       1        5     c
...

variable基本上时间valueid可以采用的3个可能类别。

我有兴趣制作一个" parallel"纵向图,与ggplot2

类似

enter image description here

我正在努力让它变得正确。我现在想出的是:

dt0 %>% ggplot(aes(variable, value, group = id, colour = id)) +
  geom_line(colour="grey70") +
  geom_point(aes(colour=value, size = nn), size=4) + 
  scale_colour_brewer(palette="Set1") + theme_minimal()

enter image description here

此图表的问题在于我们无法真正看到"厚度"过渡"过渡" (id行)。

我想知道你是否可以帮助我:

a)帮助使id行可见,或使其变得更厚"根据从一个州到另一个州的id的数量

b)我还希望re-size根据此状态中的id的数量。geom_point(aes(colour=value, size = nn), size=4)。我尝试用# data # library(dplyr) library(ggplot2) set.seed(10) # generate random sequences # dt = as.data.frame( cbind(id = 1:1000, replicate(5, sample( c('a', 'b', 'c'), prob = c(0.1,0.2,0.7), 1000, replace = T)) ) ) # transform to PP file # dt = dt %>% melt(id.vars = c('id')) # create a vector 1-0 if the activity was performed # dt0 = dt %>% group_by(id) %>% mutate(variable = 1:n()) %>% arrange(id) # create the number of people in that state # dt0 = dt0 %>% count(id, variable, value) dt0 = dt0 %>% group_by(variable, value, n) %>% mutate(nn = n()) # to produce the first graph #  library(vcrpart) otsplot(dt0$variable, factor(dt0$value), dt0$id) 来做,但它似乎没有效果。

感谢。

writeRecord :: Handle -> Record -> IO ()
writeRecord h r = hPutStrLn h (toByteString r)

1 个答案:

答案 0 :(得分:2)

你与geom_point(aes(colour=value, size = nn), size=4)如此接近,问题是你在size aes()中定义ggplot之后重新定义nn用常数4覆盖变量引用。假设你想使用dt0 %>% ggplot(aes(variable, value, group = id, colour = id)) + geom_line(colour="grey70", aes(size = nn)) + geom_point(aes(colour=value, size = nn)) + scale_colour_brewer(palette="Set1") + theme_minimal() 来扩展行思维,你可以调整你的代码:

dt0

如果您想为线条粗细使用滞后值,我建议将其添加为this.router.navigate(./somepath, { relativeTo: this.route })中的新列。

enter image description here