#' stackedbarplot UI Function #' #' @description A shiny Module. #' #' @param id,input,output,session Internal parameters for {shiny}. #' #' @noRd #' #' @importFrom shiny NS tagList mod_stackedbarplot_ui <- function(id){ ns <- NS(id) tagList( shinycssloaders::withSpinner( type = 5, hide.ui=F, plotly::plotlyOutput(ns("stabarplot")) ) ) } #' stackedbarplot Server Functions #' #' @noRd mod_stackedbarplot_server <- function(id, dat, ttl, cptn="Source: Download from SAP", ny=2000000){ moduleServer( id, function(input, output, session){ ns <- session$ns output$stabarplot<- plotly::renderPlotly({ pl<-ggplot(dat, aes(x=name, y=amount, fill=bp_category, label=paste0(round(amount/1000000,1)," M")))+ geom_col(position="stack")+ geom_text(col="black", size=3, angle = 45, position = position_stack(vjust = 0.5),check_overlap = TRUE)+ scale_y_continuous(labels = unit_format(unit = "M", scale = 1e-6))+ labs(title=ttl, subtitle = "", y="amount", x="", caption=cptn)+ theme_classic()+ theme( legend.position="bottom" ) ggplotly(pl) }) }) } ## To be copied in the UI # mod_stackedbarplot_ui("stackedbarplot_ui_1") ## To be copied in the server # mod_stackedbarplot_server("stackedbarplot_ui_1")