2017-09-11 3 views
2

나는 다음과 같은 데이터 프레임이 말 : 여기는 Plotly

ret <- rnorm(100, 0, 5) 
df <- data.frame(
    x = seq(1, 100, 1), 
    ret = ret, 
    y = 100 + cumsum(ret), 
    col = c(ifelse(ret > 0, "red", "forestgreen"), NA)[-1] 
) 

내가 'RET'라는 이름 rnorm를 사용하여 일부 가상의 금융 자산의 수익률을 시뮬레이션하고있어, 그리고 오전 upticks은 녹색이고 downticks는 빨간색 인 'col'이라는 색상 벡터를 정의합니다. 내가 생산하려면 무엇

는 다음과 같은 것입니다 :

library(ggplot2) 
ggplot(df, aes(x=x, y=y)) + geom_line(aes(colour=col, group=1)) 

enter image description here

하지만 난 음모의 섹션을 확대 할 수 있도록 plotly 사용하여 비슷한 이미지를 만들고 싶어.

library(plotly) 
ggplotly(ggplot(df, aes(x=x, y=y)) + geom_line(aes(colour=col, group=1))) 

Using ggplotly

그러나 음모는 더 이상 그룹화 : 내 첫번째 생각은 단순히 원하는 이미지를 생성 한 코드 주위에 ggplotly() 함수를 사용하려고하지 않았다. 또한, 나는 plot_ly()를 사용하여 시도하지만, '안부'내가 지정하고있어 그 속성에 따라 선분이 자신의 색을 얻을 수 있도록 수없는 것 :

plot_ly(data=df, x = ~x) %>% add_lines(y = ~y, line = list(color=~col)) 

enter image description here

하지만 내 색 인수 선의 색상에는 영향을주지 않습니다. 나는 여러 가지 다른 것들을 시도했지만 두 가지 원하지 않는 플롯 중 하나를 가지고 끝내고있다. 어떤 도움을 많이 주시면 감사하겠습니다!

참고 : 이미 촛대 및 OHLC 차트를 plot_ly()로 만들었지 만 플롯의 하위 섹션을 확대 할 때 y 축의 크기가 조정되지 않기 때문에 작업 할 수 없습니다.

답변

2

나는 색상에 관계없이 geom_segment를 사용하고 다음 (x, y) 값으로 각 세그먼트 링크 업을 만들어 ggplotly에서 원하는 동작을 얻을 수있었습니다 : 말했다

library(dplyr) 
df = df %>% 
    arrange(x) %>% 
    mutate(x_next = lead(x), y_next = lead(y)) 

p = ggplot(df, aes(x=x, y=y)) + 
    geom_segment(aes(xend = x_next, yend = y_next, colour=col)) 
ggplotly(p) 

, 내가 좋은가 없습니다 왜 ggplotly이 원하는 출력을 생성하지 못하는지에 대한 대답.