В ggplot2 размер элементов указывается отдельно. Когда изменяется размер фигуры, элементы, например легенда, не изменяются. Это может быть проблемой в Shiny, когда размер выходных данных ggplot2 изменяется в окне браузера. Ниже приведен код манекена "Блестящее приложение" и две цифры вывода в разных размерах окна браузера. Меньшая фигура уродливая, поскольку часть ее легенды была отрезана.
Есть ли способ масштабирования размера легенды с размером фигуры непосредственно в ggplot2 без предварительного сохранения фигуры в качестве файла изображения для блестящих приложений?
library(shiny)
library(ggplot2)
ui <- fluidPage(
br(), br(), br(),
plotOutput("test", height = "auto")
)
server <- function(input, output, session) {
output$test <- renderPlot(
height = function() {
0.8 * session$clientData$output_test_width
},
expr = {
aaa <- ggplot(mtcars, aes(wt, mpg, color = cyl)) +
geom_point() +
theme(legend.position = c(0.9, 0.9))
print(aaa)
}
)
}
shinyApp(ui, server)
Рисунок в более крупном окне браузера выглядит хорошо:
Но в маленьком окне браузера верхняя часть легенды не отображается: