【发布时间】:2016-03-20 09:01:56
【问题描述】:
在 ggplot2 中,元素的大小是单独指定的。当图形的大小改变时,元素,例如图例不会改变。当输出 ggplot2 图形的大小随浏览器窗口而变化时,这可能是 Shiny 中的一个问题。下面是一个虚拟 Shiny 应用程序的代码和两个不同浏览器窗口大小的输出图形。较小的数字是丑陋的,因为它的传说的一部分已被切断。
有没有一种方法可以直接在 ggplot2 中使用图形大小缩放图例大小,而无需将图形预先保存为 Shiny 应用程序的图像文件?
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)
但在小浏览器窗口中,图例顶部不显示:
【问题讨论】: