ggvis - 条形图的交互式 X 轴
ggvis - Interactive X axis for bar chart
我正在考虑使用 ggvis 构建一个闪亮的应用程序。
为此,我使用了一个名为 "company" 的小型数据集。它包含员工数据,其中每一行代表一个员工。
从 ggvis 的角度来看,我正在尝试以下操作:
创建显示以下变量分布的条形图:
- 年龄
- 角色
- 性别
而不是使用以下代码创建三个不同的条形图:
#Barcharts - Role
company %>% ggvis(~Role,opacity := 0.8, fill:= "firebrick") %>%
layer_bars() %>%
scale_ordinal('x', domain=c('Analyst','Consultant','Software Engineer','Manager','Director'))
#Barcharts - Age
company %>% ggvis(~Age,opacity := 0.8, fill:= "firebrick") %>%
layer_bars()
#Barcharts - Sex
company %>% ggvis(~Sex,opacity := 0.8, fill:= "firebrick") %>%
layer_bars()
我想创建一个允许输入选择器的 ggvis 条形图。
我试过以下代码:
company %>% ggvis(input_select(c("Sex","Role","Age"), map = as.name)) %>% layer_bars()
返回以下错误:
Error: Visual property x.update is not a variable
使用的数据为:
raw <- "Age Sex Role
35 M Director
37 M Director
30 M Manager
28 M Manager
28 F Manager
27 M Software_Engineer
25 M Consultant
26 M Consultant
25 F Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 F Analyst
25 F Analyst
25 F Analyst
24 F Analyst
25 M Analyst"
company = read.table(textConnection(raw), header=TRUE)
这让我相信 ggvis 不允许 x 变量成为输入选择器项。这个对吗?有解决办法吗?
提前谢谢你。
亲切的问候
首先你需要melt
你的data.frame像这样:
library(reshape2)
company <- melt(company, measure.vars=c('Role','Age','Sex'))
然后以下对我有用:
#Barcharts - Age
company %>% ggvis(~value, opacity := 0.8) %>%
#use filter to pick only the category you want
filter(variable == eval(input_select(choices=c('Role','Age','Sex')))) %>%
layer_bars()
我无法上传互动版,但剧情是这样的:
你可以选择你喜欢的类别
我正在考虑使用 ggvis 构建一个闪亮的应用程序。 为此,我使用了一个名为 "company" 的小型数据集。它包含员工数据,其中每一行代表一个员工。
从 ggvis 的角度来看,我正在尝试以下操作: 创建显示以下变量分布的条形图:
- 年龄
- 角色
- 性别
而不是使用以下代码创建三个不同的条形图:
#Barcharts - Role
company %>% ggvis(~Role,opacity := 0.8, fill:= "firebrick") %>%
layer_bars() %>%
scale_ordinal('x', domain=c('Analyst','Consultant','Software Engineer','Manager','Director'))
#Barcharts - Age
company %>% ggvis(~Age,opacity := 0.8, fill:= "firebrick") %>%
layer_bars()
#Barcharts - Sex
company %>% ggvis(~Sex,opacity := 0.8, fill:= "firebrick") %>%
layer_bars()
我想创建一个允许输入选择器的 ggvis 条形图。
我试过以下代码:
company %>% ggvis(input_select(c("Sex","Role","Age"), map = as.name)) %>% layer_bars()
返回以下错误:
Error: Visual property x.update is not a variable
使用的数据为:
raw <- "Age Sex Role
35 M Director
37 M Director
30 M Manager
28 M Manager
28 F Manager
27 M Software_Engineer
25 M Consultant
26 M Consultant
25 F Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 M Analyst
25 F Analyst
25 F Analyst
25 F Analyst
24 F Analyst
25 M Analyst"
company = read.table(textConnection(raw), header=TRUE)
这让我相信 ggvis 不允许 x 变量成为输入选择器项。这个对吗?有解决办法吗?
提前谢谢你。 亲切的问候
首先你需要melt
你的data.frame像这样:
library(reshape2)
company <- melt(company, measure.vars=c('Role','Age','Sex'))
然后以下对我有用:
#Barcharts - Age
company %>% ggvis(~value, opacity := 0.8) %>%
#use filter to pick only the category you want
filter(variable == eval(input_select(choices=c('Role','Age','Sex')))) %>%
layer_bars()
我无法上传互动版,但剧情是这样的:
你可以选择你喜欢的类别