是否可以将两个独立变量的密度图与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" 以获得此密度
您可以通过重塑数据集来变通,这样您在一列中有一个分组变量,而您想要在另一列中绘制两列的值。我通过 melt
从 reshape2 完成这项工作。
library(reshape2)
df2 = melt(df, measure.vars = c("y1", "y2"))
完成后,您可以使用 group_by
为每个变量获取单独的密度层。
df2 %>% group_by(variable) %>%
ggvis(~value) %>%
layer_densities()
我觉得我到处都在搜索这个,但本质上我有多个数字变量的时间序列数据,我想创建一个单一的图,然后在上面有两个或多个变量的密度函数。
基本上我有:
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" 以获得此密度
您可以通过重塑数据集来变通,这样您在一列中有一个分组变量,而您想要在另一列中绘制两列的值。我通过 melt
从 reshape2 完成这项工作。
library(reshape2)
df2 = melt(df, measure.vars = c("y1", "y2"))
完成后,您可以使用 group_by
为每个变量获取单独的密度层。
df2 %>% group_by(variable) %>%
ggvis(~value) %>%
layer_densities()