2016-06-10 2 views
0

나는 stroke 및 strokeDash 매개 변수를 설정하여 다른 색상과 선 종류로 ggvis 그래프를 플로팅합니다. 예 : "빨강", "파랑"및 "녹색"색이 "파란색", "주황색"및 "녹색"인 경우 원하는 색상이 표시되지 않습니다. (코드 예제 및 스크린 샷 아래 참조).ggvis 색상 선 그래프 및 해당 범례

또한 색상 및 선 종류에 따라 범례를 추가해야합니다. 나는 "color type"(획)과 "line type"(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

기본 색상 질문의 경우지도 색상 대신 색상을 설정하기 위해': ='가 누락되었습니다. 답변 [here] (http://stackoverflow.com/questions/27454976/controlling-color-of-factor-group-in-ggvis-r)을 참조하십시오. 전설이 필요하다면,'var'을 획으로 매핑 한 다음'scale_nominal'을 사용하여 색상을 변경할 수 있습니다. 현재 'strokeDash'범례는 없습니다. [here] (https://github.com/rstudio/ggvis/issues/187)를 참조하십시오. – aosmith

+0

귀하의 제안에 대해 @aosmith에게 감사드립니다. 같은 코드를 써주시겠습니까? 나는 아직 계획중인 ggvis에 익숙하지 않습니다. – user98180

답변

0

당신은 scale_nominal를 사용하여 개별 변수에 대한 플롯과 범례 색상을 변경할 수 있습니다.

이 방법에서는 범례에있는 변수를 플로팅 코드에 매핑 한 다음 선택한 색을 사용하여 기본 색에서 벗어나 변경합니다. 이 예제에서는 stroke 변수에 var을 사용하고 있습니다. 이 때 ggvis이 strokeDash 전설을 지원하지 않습니다

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

참고. this open github issue을 참조하십시오.