You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.5 KiB
						
					
					
				| #' barplot UI Function | |
| #' | |
| #' @description A shiny Module. | |
| #' | |
| #' @param id,input,output,session Internal parameters for {shiny}. | |
| #' | |
| #' @noRd  | |
| #' | |
| #' @importFrom shiny NS tagList | |
| #' @importFrom plotly plotlyOutput renderPlotly ggplotly | |
| #' @importFrom ggplot2 ggplot aes geom_col geom_text labs theme_classic scale_y_continuous theme position_stack | |
| #' @importFrom scales unit_format | |
| mod_barplot_ui <- function(id){ | |
|   ns <- NS(id) | |
|   tagList( | |
|     shinycssloaders::withSpinner( | |
|       type = 5, | |
|       hide.ui=F, | |
|     plotly::plotlyOutput(ns("barplot")) | |
|     ) | |
|   ) | |
| } | |
| 
 | |
| #' barplot Server Functions | |
| #' | |
| #' @noRd  | |
| mod_barplot_server <- function(id, dat, ttl, cptn="Source: Download from SAP", ny=3000000){ | |
|   moduleServer( id, function(input, output, session){ | |
|     ns <- session$ns | |
|     output$barplot<- plotly::renderPlotly({ | |
|       validate( | |
|         need(nrow(dat)>0, 'Wait. Wrong button. There is nothing here. CLick something else.') | |
|       ) | |
|        | |
|       pl<-ggplot(dat, aes(x=name, y=amount, label=paste0(round(amount/1000000,1)," M")))+ | |
|         geom_col(fill="blue")+ | |
|         geom_text(col="black", nudge_y = ny)+ | |
|         scale_y_continuous(labels = unit_format(unit = "M", scale = 1e-6))+ | |
|         labs(title=ttl, | |
|              subtitle = "", | |
|              y="amount", | |
|              x="", | |
|              caption=cptn)+ | |
|         theme_classic() | |
|       ggplotly(pl) | |
|     }) | |
|      | |
|   }) | |
| } | |
| 
 | |
| ## To be copied in the UI | |
| # mod_barplot_ui("barplot_ui_1") | |
| 
 | |
| ## To be copied in the server | |
| # mod_barplot_server("barplot_ui_1")
 | |
| 
 |