首页 > 解决方案 > 使用 plotly 左对齐多行标签

问题描述

在下面的图表中,是否有左对齐所有文本,例如,Total位于正上方Pct. Total,如下所示:

在此处输入图像描述

library(dplyr)
library(plotly)
library(scales)

dat <- data.frame(grp = c("A", "B", "C"),
                  val = c(100, 50, 50)) %>% 
  mutate(label = paste0("Total: ", val, "\nPct. Total: ", percent(val/sum(val))))
         
         dat %>% 
           plot_ly(x = ~val,
                   y = ~grp,
                   type = "bar",
                   text = ~label,
                   textposition = "outside") %>% 
           layout(xaxis = list(range = c(0, 125)))

编辑:已解决

dat %>% 
   plot_ly(x = ~val,
           y = ~grp,
           type = "bar") %>% 
   layout(annotations = list(text = ~label,
                             y = ~grp,
                             x = ~val,
                             showarrow = F,
                             xanchor = "left",
                             align = "left"),
          xaxis = list(range = c(0, 125)))

标签: rplotly

解决方案


解决方案:

dat %>% 
   plot_ly(x = ~val,
           y = ~grp,
           type = "bar") %>% 
   layout(annotations = list(text = ~label,
                             y = ~grp,
                             x = ~val,
                             showarrow = F,
                             xanchor = "left",
                             align = "left"),
          xaxis = list(range = c(0, 125)))

推荐阅读