Para contextualizar, estou tentando converter um painel existente do PowerBI em um painel do RShiny com funcionalidade equivalente ou quase equivalente.
Basicamente, tenho um gráfico de barras horizontais com muitas categorias. Um problema secundário é que todos os meus gráficos de barras no RShiny parecem estar justificados à direita dentro de suas caixas.
Estou tentando descobrir como fazer com que o gráfico de barras seja exibido em tamanho real, permitindo uma rolagem vertical, em vez de deixá-lo muito pequeno para caber na caixa estática.
Tentei corrigir a altura da caixa, o que pensei que criaria automaticamente uma barra de rolagem vertical. A imagem
mostra o que estou tentando recriar em conceito, onde as barras são em escala horizontal e a caixa permite rolagem vertical. No entanto, continuo com o gráfico completo super pequeno, todo amontoado na caixa.
e também justificado à direita. Abaixo está o código do servidor e da interface do usuário para este gráfico específico.
library(shiny)
library(shinydashboard)
library(tidyverse)
library(plotly)
ae <- structure(list(aept = c("Upper respiratory tract infection",
"Fungal infection", "COVID-19", "COVID-19", "Anxiety", "Weight increased",
"Hyperlipidaemia", "Hyperglycaemia", "Influenza", "Neck pain",
"Electrocardiogram QT prolonged", "Irritability", "Headache",
"Contusion", "Headache", "Headache", "Headache", "Anaemia", "Candida infection",
"Headache", "Headache", "Headache", "Upper respiratory tract infection",
"Diarrhoea", "COVID-19", "Influenza", "Electrocardiogram T wave abnormal",
"Headache", "Headache", "Headache", "Diarrhoea", "Upper respiratory tract infection",
"Headache", "Vaginal infection", "Tonsillitis bacterial", "Peritonsillar abscess",
"Atrioventricular block first degree", "Procedural dizziness",
"Influenza", "Procedural dizziness", "Viral infection", "Diarrhoea",
"Nausea", "Rhinitis", "Diarrhoea", "Upper respiratory tract infection",
"Diarrhoea", "Upper respiratory tract infection", "Headache",
"Rhinitis", "Upper respiratory tract infection", "Gamma-glutamyltransferase increased",
"Gamma-glutamyltransferase increased", "Headache", "Headache",
"Headache", "Insomnia", "", "", "Headache", "Glomerular filtration rate decreased",
"Blood creatinine increased", "Headache", "Ear pain", "Headache",
"Headache", "Rhinitis allergic", "Oropharyngeal pain", "Headache",
"Diarrhoea", "Headache", "Headache", "Headache", "Urinary tract infection",
"Headache", "Vaginal discharge", "Anaemia", "Influenza", "Bronchitis",
"Upper respiratory tract infection", "Rhinitis", "Blood thyroid stimulating hormone decreased",
"Abdominal pain upper", "Headache", "Tonsillitis", "Headache",
"Headache", "Methaemoglobinaemia", "Abdominal pain", "Abdominal pain lower",
"Blood creatine phosphokinase increased", "Electrocardiogram QT prolonged",
"Headache", "Headache", "Electrocardiogram QT prolonged", "Electrocardiogram QT prolonged",
"Headache", "Headache", "Upper respiratory tract infection",
"Upper respiratory tract infection")), row.names = c(NA, 100L
), class = "data.frame")
server <- function(input, output){
#AE Preferred Term
output$ae_pt <- renderPlotly({
p <- ae %>% group_by(aept) %>% summarise(count=n()) %>% arrange(desc(count)) %>%
ggplot(aes(x=reorder(aept,count), y=count)) +
geom_bar(stat='identity') +
coord_flip() +
theme_minimal()
ggplotly(p)
})
}
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("Adverse Events", tabName = "ae", icon = icon("heart"))
)),
dashboardBody(
tabItems(
# Adverse Events Tab ----
tabItem(tabName="ae",
#AE PT and .....
fluidRow(box(plotlyOutput("ae_pt"),title="Preferred Term"))
)
)))
shinyApp(ui, server)
Atualização após esclarecimento:
Basta mudar para
height = "1200px"
:Primeira resposta:
Uma maneira é adicionar estilo com altura fixa e overflow-y: scroll
Atualize seu
box()
assim:e mudar
output$ae_pt
paraAqui está o código completo: