2017-02-13 9 views
0

plotly으로 작성된 차트 모음에 메모를 추가하는 데 도움이 필요합니다.막 대형 차트에서 add_annotations를 사용하는 방법

내가 가지고있는 다음과 같은 데이터 프레임 ""

s_plot <- plot_ly(x = ~s_1, y = reorder(s_0, s_1), 
type = 'bar', 
orientation = 'h', 
marker = list(color = 'rgba(50, 50, 100, 1)', 
line = list(color = 'rgba(128, 0, 128)'))) 

bar chart

내가를 추가 할 :

s_0 <- c("NH", "OR", "NE", "PA", "NJ", "MA", "IL", "CA", "WI", "OH", "WV") 
s_1 <- c(0.66719, 0.62480, 0.62797, 0.55121, 0.25582, 0.63407, 0.57009, 0.29712, 0.19979, 0.08913, -0.16944) 
s <- data.frame(s_0, s_1) 

나는 다음과 같은 막대 차트를 생성하는 plot_ly()를 사용 막대의 끝에있는 그래프의 "s_1"값은 아래 그림과 같지만 모든 막대에 해당합니다.

enter image description here

은 내가 add_annotations()을 사용했다 생각,하지만 난 그것을하는 방법을 모르겠어요.

나는 코드를 부드럽게 물어 보았다. 아주 간단해야한다는 것을 알고있다.

답변

2

코드의 수정 및 Plotly에 의해 제공되는 example 거의 바로 레이아웃을 제공합니다.

일반적으로 주석은 막대의 중간에 있으며 xanchor에서 left으로 설정하면 문제가 해결되지만 음수 값은보기 힘듭니다.

제안 된 해결 :

xanchor = ifelse(s_1 > 0, 'left', 'right') 

enter image description here

library(plotly) 

s_0 <- c("NH", "OR", "NE", "PA", "NJ", "MA", "IL", "CA", "WI", "OH", "WV") 
s_1 <- c(0.66719, 0.62480, 0.62797, 0.55121, 0.25582, 0.63407, 0.57009, 0.29712, 0.19979, 0.08913, -0.16944) 
s <- data.frame(s_0, s_1) 

s_plot <- plot_ly(x = ~s_1, y = reorder(s_0, s_1), 
        type = 'bar', 
        orientation = 'h', 
        marker = list(color = 'rgba(50, 50, 100, 1)', 
           line = list(color = 'rgba(128, 0, 128)'))) %>% 
    layout(annotations = list(x = s_1, y = reorder(s_0, s_1), text = s_1, xanchor = ifelse(s_1 > 0, 'left', 'right'), 
          yanchor = 'center', 
          showarrow = FALSE)) 
0

우리는 사용할 수 있습니다

add_text(s_plot, text = s_1, marker = NULL, textposition = 'right') 

는 서로 다른 속성으로 플레이 할 수 있습니다 :

유효한 속성은 다음과 같습니다

'유형', '가시', 'showlegend을' 'uid', 'hoverinfo', 'stream', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'legendgroup', 'opacity', 'name' 'text', 'mode', 'hoveron', 'line', 'connectgaps', 'fill', 'fillcolor','yax', 'ysrc', 'textsrc', 'textsrc', 'textsrc', 'text', 'textsrc', 'text', ' 'textpositionsrc', 'rsrc에', 'TSRC', '키'

+0

는 사실은, 그러나 그것은 완전히 정확한 위치를 그리워 텍스트를 추가합니다. 그 문제를 해결하는 방법을 알고 있습니까? – smars