GGVIS-条形图的交互X轴 [英] ggvis - Interactive X axis for bar chart

查看:25
本文介绍了GGVIS-条形图的交互X轴的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在考虑用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您的数据。框架如下:

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-条形图的交互X轴的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆