是否可以将两个单独变量的密度图与ggvis组合

时间:2016-10-07 19:46:41

标签: r ggvis density-plot

我觉得我到处寻找这个,但基本上我有多个数字变量的时间序列数据,我想创建一个单一的图,然后密度函数为2或变量。

基本上我有:

df %>% ggvis(~y1) %>% layer_densities()
df %>% ggvis(~y2) %>% layer_densities()

但如果我这样做:

df %>% ggvis(~y1) %>% layer_densities() %>% layer_densities(~y2)

我收到以下错误:

  

eval(expr,envir,enclos)中的错误:找不到对象'y2'

我觉得这不应该太难,但我无法弄明白,我不认为我应该使用group by,因为这是两个单独的变量,没有相似的因素或特征。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

在ggplot中你可以设置color ="你的时间变量"在aes()中获得这个密度

答案 1 :(得分:0)

您可以通过重新整形数据集来解决这个问题,以便在一列中包含一个分组变量,并在另一列中绘制两个列的值。我是通过 reshape2 中的melt完成工作的。

library(reshape2)
df2 = melt(df, measure.vars = c("y1", "y2"))

一旦这样做,您可以使用group_by为每个变量获取单独的密度图层。

df2 %>% group_by(variable) %>% 
    ggvis(~value) %>% 
    layer_densities()