2016-09-27 2 views
0

위도, 경도, 경도 및 위도로 위도 경도와 같은 몇 가지 관찰에 대해 4 좌표가있는 데이터 프레임이 있습니다. 플롯의 공항 예와 같이지도에 표시되는 세그먼트를 만들고 싶습니다. https://plot.ly/r/lines-on-maps/플롯 맵의 좌표 기반 세그먼트는 중심에서부터 시작합니다.

내 데이터 프레임에 맞도록 코드를 변경하려고했습니다. 세그먼트는 좌표를 통과하지만 첫 번째 좌표에서 시작하지는 않지만 지구본의 중심에서 시작합니다. 이유는 실제로 이해할 수 없습니다. 나는 내가 뭘 잘못했는지 모르겠다.

the plot as it appears

다음 enter image description here

코드입니다 :

geo <- list(
     scope = 'Europe', 
     projection = list(type = 'azimuthal equal area'), 
     showland = TRUE, 
     landcolor = toRGB("gray95"), 
     countrycolor = toRGB("gray80") 
    ) 

    plot_geo(locationmode = 'Europe', color = I("red")) %>% 
     add_markers(
     data = transfer.path.full[1:10,], x = ~lon_o, y = ~lat_o, text = ~name, hoverinfo = "text", alpha = 0.5 
    ) %>% 
     add_segments(
     data = group_by(transfer.path.full[1:10,],id), 
     x = ~lon_o, xend = ~lon_d, 
     y = ~lat_o, yend = ~lat_d, 
     alpha = 0.3, size = I(1), hoverinfo = "text" 
    ) %>% 
     layout(title = 'E T 2016', 
     geo = geo, showlegend = FALSE, height=800 
    ) 

감사 어떤 도움이, 감사합니다!

+0

플롯 포럼에도 게시했으며 분명히 알려진 문제이므로 https://github.com/plotly/plotly.js/issues/963을 해결하기 위해 노력 중입니다. –

답변

1

이전에 물어 본 다른 질문에 대한 답을 찾았습니다. split =~ some_id을 사용해야합니다. Tableau에서 paths 함수를 사용하는 것과 비슷합니다.

geo <- list(
    scope = 'Europe', 
    projection = list(type = 'azimuthal equal area'), 
    showland = TRUE, 
    landcolor = toRGB("gray95"), 
    countrycolor = toRGB("gray80") 
) 

plot_geo(locationmode = 'Europe', color = I("red")) %>% 
    add_markers(
    data = transfer.path.full[1:10,], x = ~lon_o, y = ~lat_o, text = ~name, hoverinfo = "text", alpha = 0.5 
) %>% 
    add_segments(
    data = group_by(transfer.path.full[1:10,],id), 
    x = ~lon_o, xend = ~lon_d, 
    y = ~lat_o, yend = ~lat_d, 
    alpha = 0.3, size = I(1), split =~ some_id, hoverinfo = "text" 
) %>% 
    layout(title = 'E T 2016', 
    geo = geo, showlegend = FALSE, height=800 
) 

또한 그들에게 모두 같은 색상을 만들기 위해 같은 줄에 color = I('blue')를 추가 할 수 있습니다. 나는 당신이 흔적을 가지고하고자하는 것처럼 동일한 전설 그룹에 그들 모두를 묶을 수있는 방법을 찾지 못했다 legendgroup, 만약 당신이 그걸 알려주는 방법을 알게된다면!