2017-02-13 48 views
0

我需要幫助,在圖表欄上添加一些註釋,使用plotly構建。如何在條形圖中使用add_annotations

我有以下的數據幀 「小號」:

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_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_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', 'legendgroup','opacity','name', 'uid','hoverinfo','stream','x','x0','dx','y','y0','dy' 'text','mode','hoveron','line','connectgaps','fill','fillcolor', 'marker','textposition','textfont','r','t','error_y','error_x', 'xaxis','yaxis','xsrc','ysrc','textsrc', 「textpositionsrc」, 「RSRC」,「臺橡」,「關鍵」

+0

實際添加文本,但它完全錯過了正確的位置。你知道如何解決這個問題嗎? – smars

相關問題