ggplotly в R: изменить размер метки данных - PullRequest
0 голосов
/ 21 марта 2019

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

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

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 Ответ

0 голосов
/ 21 марта 2019

Как насчет просто передать 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)

size 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)

size 2

...