R 如何在ggvis中创建多条平滑线?

R 如何在ggvis中创建多条平滑线?,r,ggvis,R,Ggvis,这是生成线条图的代码,线条图更平滑 mtcars %>% ggvis(~wt, ~mpg) %>% layer_lines() %>% layer_smooths() 这将通过vs分解,并绘制两条不同颜色的线: mtcars %>% ggvis(~wt, ~mpg, stroke= ~ as.factor(vs)) %>% layer_lines() 但是我怎样才能添加两个不同的平滑器呢?我正在尝试,但不明白为什么它不

这是生成线条图的代码,线条图更平滑

mtcars %>% 
    ggvis(~wt, ~mpg) %>%
    layer_lines() %>%
    layer_smooths()
这将通过
vs
分解,并绘制两条不同颜色的线:

mtcars %>% 
    ggvis(~wt, ~mpg, stroke= ~ as.factor(vs)) %>%
    layer_lines()
但是我怎样才能添加两个不同的平滑器呢?我正在尝试,但不明白为什么它不起作用

mtcars %>% 
    ggvis(~wt, ~mpg, stroke= ~ as.factor(vs)) %>%
    layer_lines() %>%
    layer_smooths()

您可以使用
dplyr::group\u通过
设置分组:

library(dplyr)
library(ggvis)

mtcars %>% 
    mutate(vs = factor(vs)) %>%
    ggvis(~wt, ~mpg, stroke = ~vs) %>%
    group_by(vs) %>% 
    layer_lines() %>%
    layer_smooths()

您可以使用
dplyr::group\u by
设置分组:

library(dplyr)
library(ggvis)

mtcars %>% 
    mutate(vs = factor(vs)) %>%
    ggvis(~wt, ~mpg, stroke = ~vs) %>%
    group_by(vs) %>% 
    layer_lines() %>%
    layer_smooths()

谢谢,你能解释一下为什么我需要
groupby
,并且分组不是简单地在属性
stroke
中传递的吗?在
?layer\u smooth
?ggvis::groupby
中有一个示例和文档,但我认为在计算数据转换时,你必须明确地设置分组。老实说,ggvis仍然是很好的阿尔法,所以行为可能会改变。谢谢。顺便说一句,我无法使用我的原始示例,因为我必须使用很少的df来计算更平滑的,我想…如果有一种“平滑器”,它可以通过删除线条图中的锐角使图表看起来更漂亮,你可以调整它以使用任意数量的平滑器;请参见
?层模型预测
(这是
层平滑
的更一般形式)和
?计算模型预测
,其中有关于将其从
黄土
/
gam
(默认值取决于您拥有的点数)调整为
lm
glm
,的更多详细信息,或者诸如此类。如果您愿意,您也可以使用
auto\u group
。谢谢,您能解释一下为什么我需要
group\u by
,并且分组不是简单地传递到属性
stroke
?layer\u smooth
中有一个示例和文档,但我认为在计算数据转换时,必须显式地设置分组。老实说,ggvis仍然是很好的阿尔法,所以行为可能会改变。谢谢。顺便说一句,我无法使用我的原始示例,因为我必须使用很少的df来计算更平滑的,我想…如果有一种“平滑器”,它可以通过删除线条图中的锐角使图表看起来更漂亮,你可以调整它以使用任意数量的平滑器;请参见
?层模型预测
(这是
层平滑
的更一般形式)和
?计算模型预测
,其中有关于将其从
黄土
/
gam
(默认值取决于您拥有的点数)调整为
lm
glm
,的更多详细信息,或者诸如此类。如果您愿意,也可以使用
auto\u group