Sys.setlocale(locale = "C")
## [1] "C/C/C/C/C/ja_JP.UTF-8"
library(ggvis)
## 
## Attaching package: 'ggvis'
## 
## The following object is masked from 'package:stats':
## 
##     filter
library(dplyr)
## 
## Attaching package: 'dplyr'
## 
## The following object is masked from 'package:ggvis':
## 
##     explain
## 
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## 
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)
sessionInfo()
## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] C/C/C/C/C/ja_JP.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitr_1.6     dplyr_0.2     ggvis_0.3.0.1
## 
## loaded via a namespace (and not attached):
##  [1] RJSONIO_1.2-0.2  Rcpp_0.11.2      assertthat_0.1   bitops_1.0-6    
##  [5] caTools_1.17     digest_0.6.4     evaluate_0.5.5   formatR_0.10    
##  [9] htmltools_0.2.4  httpuv_1.3.0     magrittr_1.0.1   parallel_3.0.2  
## [13] rmarkdown_0.2.49 shiny_0.10.0     stringr_0.6.2    tools_3.0.2     
## [17] xtable_1.7-3     yaml_2.1.13

OK, with layer_points

ToothGrowth %>% 
  ggvis(x = ~supp, y = ~len, fill = ~supp) %>% 
  layer_points()

Only the left most bar appears:

ToothGrowth %>%
  ggvis(x = ~supp, fill = ~supp) %>%
  layer_bars()

No effect of fill:

ToothGrowth %>% 
  ggvis(x = ~supp) %>%
  layer_bars(fill = ~supp)

Work when fill represents other variable:

ToothGrowth %>% mutate(dose = factor(dose)) %>%
  ggvis(x = ~supp, fill = ~dose) %>%
  layer_bars()

But does not work when fill is set inside layer_bars

ToothGrowth %>% mutate(dose = factor(dose)) %>%
  ggvis(x = ~supp) %>%
  layer_bars(fill = ~dose)