2017-09-12 69 views
2

我正在用一些Plotly水平條形圖構建一個Shiny應用程序。一些數據標籤很長,我想在多行上打破它們。它適用於我想要打破這條線的地方<br>,但軸標籤的對齊方式不太合適。看到下面的輸出(左)和所需的情節(右)圖片。在多條線上繪製軸標籤對齊

Plotly output (left) and desired output (right)

低於最小工作示例。它遺漏了Shiny部分,因爲我期望這不會影響可能的解決方案。

df <- data.frame(
    name = paste0('This is a pretty long sentence',1:10), 
    dimA = 1:10 
) 

df$name <- gsub('This is a pretty long sentence','This is a<br>pretty long<br>sentence',df$name) 


## Hide axes 
ax <- list(
    title = "", 
    showline = FALSE, 
    showticklabels = FALSE, 
    showgrid = FALSE, 
    domain = list(0.2, 1) 
) 
ay <- list(
    title = "", 
    zeroline = FALSE, 
    showline = FALSE, 
    showticklabels = TRUE, 
    showgrid = FALSE 
) 

p <- df %>% 
    plot_ly(x = ~dimA, 
      y = ~name, 
      type = 'bar', 
      orientation = 'h' 
) %>% 
    layout(xaxis = ax, yaxis = ay) 
p 

幫助非常感謝!與此掙扎幾個小時,但無法找到解決方案!

回答

1

這不是很一般,但你可以使用tickvals,例如調整刻度位置:

ay <- list(
title = "", 
zeroline = FALSE, 
showline = FALSE, 
showticklabels = TRUE, 
showgrid = FALSE, 
tickvals = 0:9 + 0.25 
) 
+0

工作正常,上面的問題!你當然可以動態地在它周圍構建一個包裝,計算中斷的數量並動態構造tickvalues。 Thx KGee指向正確的方向。 – Dendrobates