直方图中 y 轴的奇怪行为

Strange behavior of y axis in histograms

我想使用 ggivs 将一组不同变量的直方图全部放在同一个缩放的 y 轴上。然而,一旦我的轴明显大于变量的最高计数,它们就会变得非常奇怪,甚至开始在负方向上绘制条形图。这是我的数据 http://rpubs.com/elinw/116698

这是一个可重现的例子

# no values specified
iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
   add_axis("y", title = "Count", title_offset="50") 
   add_axis("x", title = "Width", title_offset="50") 

#0 to 150
 iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
   add_axis("y", title = "Count", title_offset="50",  values = seq(0,150, by = 10))  %>%
   add_axis("x", title = "Width", title_offset="50") 

  #0 to 175
 iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
   add_axis("y", title = "Count", title_offset="50",  values = seq(0,200, by = 10))  %>%
   add_axis("x", title = "Width", title_offset="50") 

 #0 to 250
 iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
   add_axis("y", title = "Count", title_offset="50",  values = seq(0,250, by = 10))  %>%
   add_axis("x", title = "Width", title_offset="50") 

#0 to 500
 iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
   add_axis("y", title = "Count", title_offset="50",  values = seq(0,500, by = 10)) 
   add_axis("x", title = "Width", title_offset="50") 

我已经阅读了文档,但我没有看到任何相关信息。我可以更改属性中的某些内容以使其正常工作吗?或者是否有关于此的已知规则?或者这是一个错误?

add_axis 中的参数 values 仅设置刻度在轴上的位置,但不会更改轴的最小和最大限制 (ylim/xlim)。根据ggvis doc,你需要在scale_numeric()中设置参数为domain的那些。试试这个:

iris %>% ggvis(~Sepal.Width) %>% layer_histograms(width = 1)  %>%
  add_axis("y", title = "Count", title_offset="50",  values = seq(0,150, by = 10))  %>%
  ## Set axis limits:
  scale_numeric("y", domain = c(0, 150), nice = FALSE) %>% 
  add_axis("x", title = "Width", title_offset="50")

你可以在这里看到所有的情节:http://rpubs.com/scoa/116718