我想在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,但我不明白这是怎么做的。谢谢你的时间!
答案 0 :(得分:0)
我使用来自dpply的group_by和来自Vega的interpolate方法找到了这个的解决方案。另外,我了解到如果目标是在data.frame中绘制每个因子,则使用“= ~MyFactorVariable”而不是“:=〜MyFactorVariable”。如果值是固定的,则使用“:=”。例如stroke:=“red”:
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)