Как я могу позволить тексту панели Plotly переполняться за бар? - PullRequest
1 голос
/ 17 апреля 2020

Как получить размер текста для dr5 и dr3 для более коротких столбцов? Если текст длиннее, чем полоса, я бы хотел, чтобы текст переполнялся за конец полосы.

Я пытался использовать в тексте макет с равномерным текстом, но это сократило весь текст до наименьшего используемого шрифта. Как мне изменить весь шрифт на самый большой используемый размер?

barchart

library(plotly)

# Test long text and short bars
xValues <- c("loooooooooooooooooonnnnnngg","lonnnnnnnnnnggggggg",
             "dr3","dr4","dr5")
yValues <- c(0.5,1,2,0.22,10)

bar <- plot_ly(x = yValues,
               y = xValues) %>% 
       add_trace(
               type = 'bar',
               orientation = 'h',
               text = xValues,
               textangle = 360,
               textposition = "inside",
               insidetextanchor = "start",
               showlegend = F) %>% 
       layout(
               yaxis = list(zeroline = FALSE,showline = FALSE,showticklabels = FALSE),
               uniformtext = list(mode = "show")
               )

bar

1 Ответ

0 голосов
/ 18 апреля 2020

Это может быть достигнуто путем добавления меток через add_text примерно так:

Кстати: я помещаю векторы внутри df. Мне кажется более естественным.

library(plotly)

# Test long text and short bars
xValues <- c("loooooooooooooooooonnnnnngg","lonnnnnnnnnnggggggg",
             "dr3","dr4","dr5")
yValues <- c(0.5,1,2,0.22,10)

df <- data.frame(
  x = xValues,
  y = yValues
)

bar <- plot_ly(df, x = ~y, y = ~x, text = ~x) %>% 
  add_trace(
    type = 'bar',
    orientation = 'h',
    showlegend = F) %>% 
  add_text(x = 0.1, textposition = "middleright") %>% 
  layout(yaxis = list(zeroline = FALSE,showline = FALSE, showticklabels = FALSE))

bar

enter image description here

...