#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)
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)
Комментарии:
1. Спасибо! Я совершенно забыл, что в plotly можно передавать некоторые значения непосредственно из ggplot! Ну, мне нужны эти дополнительные параметры компоновки, потому что фактические метки осей длинные, и чтобы они были разборчивыми, мне нужен шрифт меньшего размера.