我觉得我到处寻找这个,但基本上我有多个数字变量的时间序列数据,我想创建一个单一的图,然后密度函数为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,因为这是两个单独的变量,没有相似的因素或特征。任何帮助将不胜感激。
答案 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()