是否可以将两个独立变量的密度图与ggvis结合起来

Is it possible to combine density plots of two separate variables with ggvis

我觉得我到处都在搜索这个,但本质上我有多个数字变量的时间序列数据,我想创建一个单一的图,然后在上面有两个或多个变量的密度函数。

基本上我有:

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

但如果我这样做:

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

我收到以下错误:

Error in eval(expr, envir, enclos) : object 'y2' not found

我觉得这应该不会太难,但我想不通,我认为我不应该使用分组依据,因为这是两个没有相似因素或特征的独立变量。任何帮助将不胜感激。

在 ggplot 中,您可以在 aes() 中设置 color = "your time variable" 以获得此密度

您可以通过重塑数据集来变通,这样您在一列中有一个分组变量,而您想要在另一列中绘制两列的值。我通过 meltreshape2 完成这项工作。

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

完成后,您可以使用 group_by 为每个变量获取单独的密度层。

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