Ggiraph 图表在 Shiny 上调整太多

Posted

技术标签:

【中文标题】Ggiraph 图表在 Shiny 上调整太多【英文标题】:Ggiraph chart resizes too much on Shiny 【发布时间】:2022-01-14 11:16:23 【问题描述】:

我正在尝试弄清楚如何在 Shiny 应用程序上更好地可视化 ggiraph 图表。问题出在这里:图表在桌面和移动设备上看起来很棒,但在移动设备上它们在下方留下了太多空间。

On desktop

这是我在移动设备上看到的:

Vertical mess

这是应用程序的布局:

# Define UI for application
ui <- fixedPage(
  tags$style(html("
         body 
        background-color: white;
        color: black;
        font-family: 'Garamond'
      
      h2 
        font-family: 'Garamond';
      
      .shiny-input-container 
        color: #474747;
      ")),
  fluidRow(girafeOutput('ggplot'),
           selectInput(
             inputId = 'Country',
             label = 'Countries and territories',
             choices = c(unique(speed_data$location)),
             multiple = FALSE,
             selected = 'Europe'
             
           )),
  fluidRow(style='height:40vh')
)

# Define server logic required to draw a histogram
server <- function(input, output,session) 
  
  dat = reactive(
    speed_data %>% 
      filter(location == input$Country)
  )
  
  map = reactive(
    subset(world, !(is.na(world$value)))
  )
  
  
  output$ggplot <- renderGirafe(gg = ggplot(dat(), aes(
    x = date, y = value)) + 
    geom_line_interactive(aes(group = location, y = value, tooltip = location, color = location)) +
    scale_y_continuous(labels = scales::comma) +
    scale_color_brewer(palette = 'Set1') + 
    picci + theme(legend.title = element_blank(),
                  axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
                  legend.position = 'none') +
    labs(title = paste("Pandemic's speed |", c(dat()$location)),
         subtitle = 'Daily new cases difference (rolling average, 20 days)',
         caption = 'SOURCE: Our world in data',
         x = '',
         y = '')
  ggiraph(code = print(gg),
          options =  list(
            opts_hover(css = "stroke:#5eba7d88;cursor:pointer;")))
  )

# Run the application 
shinyApp(ui = ui, server = server)

【问题讨论】:

您的代码包含语法错误。 fluidRow 必须始终至少包含一列。 可能是语法错误,但应用程序运行良好。即使我将列嵌套到流动行中,我也会遇到同样的问题(一天中的大部分时间都经过测试) 【参考方案1】:

解决这个问题的办法是放

girafeOutput('myggiraphplot',height = '75%')

而且效果很好。

【讨论】:

您的答案可以通过添加有关代码的作用以及它如何帮助 OP 的更多信息来改进。 问题是:我不知道。我只是尝试玩高度,这就是结果

以上是关于Ggiraph 图表在 Shiny 上调整太多的主要内容,如果未能解决你的问题,请参考以下文章

R - Shiny 上的实时图表

从 Shiny 中的 sideBarMenu 和 radioButton 选择时不显示图表

根据 r shiny 中的选定类别创建图表饼图

R Shiny - 使用 DateSlider 动态过滤 ggplot2 图表

选项卡面板的动态高度调整不适用于信息框

在shiny中用现有的plotly情节创建下拉菜单。