【问题标题】:Plotting a step function in ggvis在 ggvis 中绘制阶跃函数
【发布时间】:2015-07-13 23:55:22
【问题描述】:

我想在 ggvis 中绘制一个阶梯函数,该函数通过一个因子变量分解为两种颜色。在 ggplot 中,可以通过以下方式为这个可重现的示例实现:

library(ggplot2)
set.seed(10)
df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN")))
ggplot(data=df)+geom_step(aes(id,y,colour=col))

在 ggvis 中我尝试过这样的事情:

library(ggvis)
set.seed(10)
df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN")))
df %>% ggvis(x = ~id, y = ~y,stroke := ~col) %>%
layer_paths()

这给了我一个空的情节,我不知道为什么。 Layer_paths 并不是我想要的,我读到here ggplot2 中的 geom_step 被转换为 ggvis 中的 layer_paths+transform_step 但我不明白这是如何完成的。感谢您的宝贵时间!

【问题讨论】:

    标签: r ggvis


    【解决方案1】:

    我使用 dplyr 的 group_by 和 Vega 的 interpolate 方法找到了一个解决方案。此外,我了解到,如果目标是在 data.frame 中绘制每个因子,则使用“= ~MyFactorVariable”而不是“:= ~ MyFactorVariable”。如果值是固定的,则使用 ":="。例如中风:=“红色”:

    library(dplyr)
    library(ggvis)
    set.seed(10)
    df=data.frame(id=1:100,y=rnorm(100),col=factor(c("MEN","WOMEN")))
    df %>% group_by(col)%>%ggvis(x = ~id, y = ~y) %>%
    layer_paths(interpolate:="step-after",stroke = ~col)    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      相关资源
      最近更新 更多