2015-10-10 10 views
0

我想使用ggivs將一組不同變量的直方圖全部放在同一個縮放的y軸上。然而,一旦我的座標軸變得比變量的最大值大得多,他們就開始變得非常奇怪,甚至開始在負方向上繪製豎線。這是我的數據http://rpubs.com/elinw/116698直方圖中y軸的奇怪行爲

這裏是一個可再現例如

# 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") 

我讀過的文件,但我不認爲這事。我可以改變這些功能來改變這些功能嗎?還是有一個關於這個的已知規則?或者它是一個錯誤?

回答

2

參數valuesadd_axis中只設置了座標軸在軸上的位置,但它不會更改軸的最小和最大限制(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

+0

你知道爲什麼做什麼我也使得圖形以這種方式來改變? – Elin

+0

我認爲ggvis無法理解在軸範圍之外的地方放置刻度線的位置。但我不知道爲什麼它產生了怪異的倒轉圖形......也許你應該將它報告爲它們跟蹤器上的錯誤,因爲這是一個意外的行爲。 – scoa