使用 ggvis 对齐多个图形(layer_points over layer_boxplots)
Align multiple graphs using ggvis (layer_points over layer_boxplots)
我正在尝试在箱线图上分层点。点和箱线图都来自相同的数据源:db_gems_spend。唯一的区别是它们的过滤方式(箱线图的日期范围和点的一天)。最终目标是为图表添加交互性,这样我就可以 select 一个日期,并通过查看该点落在特定箱形图上的位置,立即了解这一天与其他日子的比较情况。
问题是这些点目前没有与箱形图对齐。
你可以在这里看到:
这是代码:
db_gems_spend %>%
filter(dayofweek == "Fri") %>% # add interactivity (automate dayofweek selection)
filter(date >= "2015-08-01") %>% # add interactivity
ggvis(~action_type, ~count) %>%
layer_boxplots() %>%
add_axis("x", title = "action_type", title_offset = 50,
properties = axis_props(labels = list(angle = 20, align = "left", fontSize = 10))) %>%
add_axis("y", title = "count", title_offset = 60) %>%
add_data(db_gems_spend) %>%
filter(date == "2015-11-04") %>% # add interactivity
layer_points(x = ~action_type, y = ~count, fill := "red")
如何让这些点对齐?
db_gems_spend %>%
ggvis(~action_type, ~(count/total_spend)) %>%
layer_boxplots() %>%
add_data(db_gems_spend) %>%
layer_points(x = ~action_type, y = ~count, fill := "red",
prop("x", ~action_type, scale = "xcenter"))
谢谢 aosmith,github 上的解决方案正是我要找的。事实证明,如果值是分类的而不是数字的,ggvis 会将 layer_points 对齐到 layer_boxplots 的左侧,除非您指定上面的最后一行代码。
我正在尝试在箱线图上分层点。点和箱线图都来自相同的数据源:db_gems_spend。唯一的区别是它们的过滤方式(箱线图的日期范围和点的一天)。最终目标是为图表添加交互性,这样我就可以 select 一个日期,并通过查看该点落在特定箱形图上的位置,立即了解这一天与其他日子的比较情况。
问题是这些点目前没有与箱形图对齐。
你可以在这里看到:
这是代码:
db_gems_spend %>%
filter(dayofweek == "Fri") %>% # add interactivity (automate dayofweek selection)
filter(date >= "2015-08-01") %>% # add interactivity
ggvis(~action_type, ~count) %>%
layer_boxplots() %>%
add_axis("x", title = "action_type", title_offset = 50,
properties = axis_props(labels = list(angle = 20, align = "left", fontSize = 10))) %>%
add_axis("y", title = "count", title_offset = 60) %>%
add_data(db_gems_spend) %>%
filter(date == "2015-11-04") %>% # add interactivity
layer_points(x = ~action_type, y = ~count, fill := "red")
如何让这些点对齐?
db_gems_spend %>%
ggvis(~action_type, ~(count/total_spend)) %>%
layer_boxplots() %>%
add_data(db_gems_spend) %>%
layer_points(x = ~action_type, y = ~count, fill := "red",
prop("x", ~action_type, scale = "xcenter"))
谢谢 aosmith,github 上的解决方案正是我要找的。事实证明,如果值是分类的而不是数字的,ggvis 会将 layer_points 对齐到 layer_boxplots 的左侧,除非您指定上面的最后一行代码。