【问题标题】:How to make multiple smoothing lines in ggvis?如何在ggvis中制作多条平滑线?
【发布时间】:2016-10-21 22:34:44
【问题描述】:

这是生成平滑线图的代码

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()

【问题讨论】:

    标签: r ggvis


    【解决方案1】:

    您可以使用dplyr::group_by设置分组:

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

    【讨论】:

    • 谢谢,你能解释一下为什么我需要group_by 并且分组不是简单地传入属性stroke 吗?
    • 有一个示例here?layer_smooths?ggvis::group_by 的文档,但我认为当它计算数据的转换时,您必须明确设置分组。老实说,ggvis 仍然是 alpha 版,所以行为可能还会改变。
    • 谢谢。顺便说一句,我无法开始我原来的例子,因为我必须很少的 df 来计算我猜想的更平滑的......拥有一种“更平滑”会很酷,它只会让图表看起来更好通过删除折线图中的锐角
    • 您可以调整它以使用任意数量的平滑器;请参阅?layer_model_predictions(这是layer_smooths 的更一般形式)和?compute_model_predictions,其中包含有关将其从loess/gam(默认值取决于您拥有的点数)调整为lm 的更多详细信息,glm,或诸如此类。
    • 如果您愿意,也可以改用auto_group
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2012-06-16
    • 2023-03-27
    • 2020-05-15
    • 2022-01-17
    • 2020-06-03
    • 2023-01-12
    相关资源
    最近更新 更多