2016-06-10 32 views
0

我通過設定行程和strokeDash參數繪製具有不同顏色和線型一ggvis曲線圖。 顏色沒有顯示我想要的,例如:我需要「紅色」,「藍色」和「綠色」顏色,其中顯示的顏色爲「藍色」,「橙色」和「綠色」(代碼示例和截圖在下面)。ggvis彩色的線圖和相應圖例

我還需要根據顏色和線型添加傳說。我無法添加結合「顏色類型」(中風)和「線型」(strokeDash)的圖例。

下面是我工作的示例代碼。

mydf <- data.frame(xval = c(1:5),USA = c(11:15), Canada = c(21:25), UK = c(31:35)) 

mydf2 <- tidyr::gather(mydf, 'var', 'val', -xval) 

mydf2$mycol <- c(rep("Red",5), rep("Blue",5), rep("Green",5)) 
mydf2$mydash <- c(rep(5,5), rep(-1,5), rep(10,5)) 

myggv2 <- mydf2 %>% ggvis(x = ~xval, y = ~val, stroke = ~mycol,  
strokeDash := ~mydash) %>% layer_points(size := 100) %>% 
add_tooltip(function(d) { paste0("x:", d$xval, "<br>", "y:", d$val) }, "hover") %>% group_by(var) %>% 
layer_paths() %>% add_axis("x", title = "qtrs") %>% 
    add_axis("y", title = "MEV")%>% hide_legend("stroke") 
myggv2 

下面是該圖的屏幕截圖。 Screenshot

感謝

+0

對於主要的顏色問題,你只是缺少':='來設置顏色,而不是地圖顏色。看到答案[這裏](http://stackoverflow.com/questions/27454976/controlling-color-of-factor-group-in-ggvis-r)。但是,如果我想要一個圖例,我可能會將'var'映射到筆畫,然後使用'scale_nominal'更改顏色。目前沒有可用的strokeDash圖例。見[這裏](https://github.com/rstudio/ggvis/issues/187)。 – aosmith

+0

感謝@aosmith您的建議。你能否寫下相同的代碼。我對ggvis陰謀仍然陌生。 – user98180

回答

0

你可以改變你的情節和傳奇色彩的使用scale_nominal離散變量。

在這種方法中,你想要的變量映射在繪製代碼中的圖例,然後更改使用您選擇的顏色默認的顏色了。在本例中,我使用var作爲stroke變量。

mydf2 %>% 
    ggvis(x = ~xval, y = ~val, stroke = ~var,  
      strokeDash := ~mydash) %>% 
    layer_points(size := 100) %>% 
    add_tooltip(function(d) { paste0("x:", d$xval, "<br>", "y:", d$val) }, "hover") %>% 
    group_by(var) %>% 
    layer_paths() %>% 
    add_axis("x", title = "qtrs") %>% 
    add_axis("y", title = "MEV") %>% 
    scale_nominal("stroke", label = "Country", range = unique(mydf2$mycol)) 

enter image description here

注意的是,此時ggvis不支持strokeDash傳奇。請參閱this open github issue