直方图中 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
我想使用 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