ggplotly в R: изменить размер метки данных

#r #plotly #ggplotly

#r #plotly #ggplotly

Вопрос:

Я должен преобразовать ggplot в plotly . Естественно, самый простой способ сделать это — использовать ggploty , но размер шрифта меняется. Нет проблем вернуться к правильному размеру для меток оси и заголовка, но я не могу понять, как это сделать для меток данных? Есть идеи? Я предпочитаю сохранить ggplot и обернуть его ggplotly (также многими другими графиками).

Я попробовал шрифт из layout, но безуспешно:

 library(ggplot2)
library(plotly)

tbl <- data.frame(
  indicateur = c("freq1", "freq2", "freq3" ),
  valeur = c(44, 78, 84)
)

ggplotly(
  ggplot(tbl)  
    geom_bar(aes(x = indicateur, y = valeur), stat = 'identity', fill = rgb(31, 119, 180, maxColorValue = 255))  
    geom_text(aes(x = indicateur, y = valeur, label = valeur), vjust = -0.5)   
    ylim(0, max(tbl$valeur)*1.1)  
    labs(x = "", y = "", title = "simple counting")  
    theme_bw()  
    theme(
      axis.line = element_blank(), 
      panel.border = element_blank(),
      plot.title = element_text(hjust = 0.5)
    )
  ) %>%
  layout(
    showlegend = FALSE, 
    textfont = list(size = 5), 
    titlefont = list(size = 12),
    xaxis = list(tickfont = list(size = 9))
  )
  

Заранее спасибо за помощь.

Ответ №1:

Как насчет простого перехода size в geom_text ? Кроме того, я не считаю, что все настройки макета необходимы. Смотрите следующее:

 library(tidyverse)
library(plotly)

tbl <- data.frame(
  indicateur = c("freq1", "freq2", "freq3" ),
  valeur = c(44, 78, 84)
)

p_size_5 <- ggplot(tbl, aes(x = indicateur, y = valeur, label = valeur))  
  geom_bar(stat = "identity", fill = rgb(31, 119, 180, maxColorValue = 255))  
  geom_text(vjust = -0.5, size = 5)  
  labs(
    title = "simple counting (text 5)",
    x = NULL, y = NULL
  )  
  theme_bw()  
  theme(
    axis.line = element_blank(),
    panel.border = element_blank(),
    plot.title = element_text(hjust = 0.5)
  )

ggplotly(p_size_5)
  

размер 5

 p_size_2 <- ggplot(tbl, aes(x = indicateur, y = valeur, label = valeur))  
  geom_bar(stat = "identity", fill = rgb(31, 119, 180, maxColorValue = 255))  
  geom_text(vjust = -0.5, size = 2)  
  labs(
    title = "simple counting (text 2)",
    x = NULL, y = NULL
  )  
  theme_bw()  
  theme(
    axis.line = element_blank(),
    panel.border = element_blank(),
    plot.title = element_text(hjust = 0.5)
  )

ggplotly(p_size_2)
  

размер 2

Комментарии:

1. Спасибо! Я совершенно забыл, что в plotly можно передавать некоторые значения непосредственно из ggplot! Ну, мне нужны эти дополнительные параметры компоновки, потому что фактические метки осей длинные, и чтобы они были разборчивыми, мне нужен шрифт меньшего размера.