ggplot2和Shiny:如何使用图形大小缩放图例的大小?

GL_Li

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

在较大的浏览器窗口中,该图看起来不错: 在此处输入图片说明

但是在小的浏览器窗口中,图例的顶部不会显示:

在此处输入图片说明

eipi10

这是锚定图例顶部的一种方法,以使其不会超出绘图区域的顶部。您只需添加legend.justification(0.5, 1)到ggplot即可theme第一个值使图例的x位置居中。第二个值“ top对齐”图例的y位置。(您可以通过将第一个值的0.5更改为1来对图例进行右对齐,如果出现问题,这将使图例不会偏离图的右边缘。)这不能解决相对的尺寸调整问题,但是完整的图例将始终显示在同一位置。

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.98),
              legend.justification=c(0.5, 1))
      print(aaa)
    }
  )
}

下面,我在“小型”和“大型”浏览器窗口中插入了类似图片。

在此处输入图片说明

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在ggplot2中更改轴标题和标签的大小

增加图例字体大小ggplot2

如何添加不同大小和颜色的ggplot2字幕?

ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

如何在单个ggplot2图中指定不同的调色板和线条大小

r ggplot2:图例中的字体大小不同

如何在多个多方面ggplot2图形中实现相同的方面大小和比例?

ggplot:在图例中组合大小和颜色

如何在ggplot2中分别缩放线和点的大小

如何在具有不同画布大小的ggplot2图的网格中保持一致的轴缩放

使图例不可见,但在ggplot2中,图形尺寸和边距保持相同

图例使用grid.arrange和ggplot调整大小的问题

使用ggplot2根据R中的大小在网格中缩放多个饼图

如何在ggplot2中指定图形大小而与轴标签无关

如何减小图形中图例的大小?

如何在rmarkdown中缩放ggplot2图的标签大小

大小映射到变量时,ggplot2 geom_point图例

ggplot2中图例的位置和大小

使用Shiny和ggplot2在单个图形上绘制多条线

ggplot2-R-如何修复图例中气泡的大小

如何更改ggplot2图例以包括负值和正值?

ggplot2:顶部图例键符号大小随图例键标签而变化

如何在ggplot2中增加图例的大小

如何使用ggplot2图例表示不同的几何图形

是否可以在基数R中更改图例大小(无ggplot2)

Matplotlib缩放后的图形大小和位置

使用ggplot2对两个不同几何图形进行“着色”和“填充”的混合图例

使用ggplot2的图形

如何使用ggplot2为geom_pointrange()类型的图形获取图例键中的垂直线