mirror of
				https://github.com/msberends/AMR.git
				synced 2025-10-31 05:28:12 +01:00 
			
		
		
		
	(v3.0.0.9016) fix for plotting
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| Package: AMR | Package: AMR | ||||||
| Version: 3.0.0.9015 | Version: 3.0.0.9016 | ||||||
| Date: 2025-07-19 | Date: 2025-07-23 | ||||||
| Title: Antimicrobial Resistance Data Analysis | Title: Antimicrobial Resistance Data Analysis | ||||||
| Description: Functions to simplify and standardise antimicrobial resistance (AMR) | Description: Functions to simplify and standardise antimicrobial resistance (AMR) | ||||||
|   data analysis and to work with microbial and antimicrobial properties by |   data analysis and to work with microbial and antimicrobial properties by | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								NEWS.md
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS.md
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| # AMR 3.0.0.9015 | # AMR 3.0.0.9016 | ||||||
|  |  | ||||||
| This is primarily a bugfix release, though we added one nice feature too. | This is primarily a bugfix release, though we added one nice feature too. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										31
									
								
								R/plotting.R
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								R/plotting.R
									
									
									
									
									
								
							| @@ -381,7 +381,7 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { | |||||||
|   args <- list(...) |   args <- list(...) | ||||||
|   args[c("value", "labels", "limits")] <- NULL |   args[c("value", "labels", "limits")] <- NULL | ||||||
|  |  | ||||||
|   colours_SIR <- expand_SIR_colours(colours_SIR) |   colours_SIR <- expand_SIR_colours(colours_SIR, unname = FALSE) | ||||||
|  |  | ||||||
|   if (identical(aesthetics, "x")) { |   if (identical(aesthetics, "x")) { | ||||||
|     ggplot_fn <- ggplot2::scale_x_discrete |     ggplot_fn <- ggplot2::scale_x_discrete | ||||||
| @@ -391,24 +391,19 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { | |||||||
|       args, |       args, | ||||||
|       list( |       list( | ||||||
|         aesthetics = aesthetics, |         aesthetics = aesthetics, | ||||||
|         values = c( |         values = c(colours_SIR, NI = "grey30") | ||||||
|           S = colours_SIR[1], |  | ||||||
|           SDD = colours_SIR[2], |  | ||||||
|           I = colours_SIR[3], |  | ||||||
|           R = colours_SIR[4], |  | ||||||
|           NI = "grey30" |  | ||||||
|         ) |  | ||||||
|       ) |       ) | ||||||
|     ) |     ) | ||||||
|   } |   } | ||||||
|   scale <- do.call(ggplot_fn, args) |   scale <- do.call(ggplot_fn, args) | ||||||
|  |  | ||||||
|   scale$labels <- function(x) { |   scale$labels <- function(x) { | ||||||
|     stop_ifnot(all(x %in% c(levels(NA_sir_), NA)), |     stop_ifnot(all(x %in% c(levels(NA_sir_), "SI", "IR", NA)), | ||||||
|       "Apply `scale_", aesthetics[1], "_sir()` to a variable of class 'sir', see `?as.sir`.", |       "Apply `scale_", aesthetics[1], "_sir()` to a variable of class 'sir', see `?as.sir`.", | ||||||
|       call = FALSE |       call = FALSE | ||||||
|     ) |     ) | ||||||
|     x <- as.character(as.sir(x)) |     x <- as.character(x) | ||||||
|  |     x[!x %in% c("SI", "IR")] <- as.character(as.sir(x[!x %in% c("SI", "IR")])) | ||||||
|     if (!is.null(language)) { |     if (!is.null(language)) { | ||||||
|       x[x == "S"] <- "(S) Susceptible" |       x[x == "S"] <- "(S) Susceptible" | ||||||
|       x[x == "SDD"] <- "(SDD) Susceptible dose-dependent" |       x[x == "SDD"] <- "(SDD) Susceptible dose-dependent" | ||||||
| @@ -418,6 +413,8 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { | |||||||
|         x[x == "I"] <- "(I) Intermediate" |         x[x == "I"] <- "(I) Intermediate" | ||||||
|       } |       } | ||||||
|       x[x == "R"] <- "(R) Resistant" |       x[x == "R"] <- "(R) Resistant" | ||||||
|  |       x[x == "SI"] <- "(S/I) Susceptible" | ||||||
|  |       x[x == "IR"] <- "(I/R) Non-susceptible" | ||||||
|       x[x == "NI"] <- "(NI) Non-interpretable" |       x[x == "NI"] <- "(NI) Non-interpretable" | ||||||
|       x <- translate_AMR(x, language = language) |       x <- translate_AMR(x, language = language) | ||||||
|     } |     } | ||||||
| @@ -425,7 +422,7 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { | |||||||
|   } |   } | ||||||
|   scale$limits <- function(x, ...) { |   scale$limits <- function(x, ...) { | ||||||
|     # force SIR in the right order |     # force SIR in the right order | ||||||
|     as.character(sort(factor(x, levels = levels(NA_sir_)))) |     as.character(sort(factor(x, levels = c(levels(NA_sir_), "SI", "IR")))) | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   scale |   scale | ||||||
| @@ -1490,7 +1487,7 @@ labels_sir_count <- function(position = NULL, | |||||||
| } | } | ||||||
|  |  | ||||||
| expand_SIR_colours <- function(colours_SIR, unname = TRUE) { | expand_SIR_colours <- function(colours_SIR, unname = TRUE) { | ||||||
|   sir_order <- c("S", "SDD", "SI", "I", "IR", "R") |   sir_order <- c("S", "SDD", "I", "R", "SI", "IR") | ||||||
|  |  | ||||||
|   if (is.null(names(colours_SIR))) { |   if (is.null(names(colours_SIR))) { | ||||||
|     if (length(colours_SIR) == 1) { |     if (length(colours_SIR) == 1) { | ||||||
| @@ -1500,13 +1497,21 @@ expand_SIR_colours <- function(colours_SIR, unname = TRUE) { | |||||||
|       # fill in green for SDD as extra colour |       # fill in green for SDD as extra colour | ||||||
|       colours_SIR <- c(colours_SIR[1], colours_SIR[1], colours_SIR[2], colours_SIR[3]) |       colours_SIR <- c(colours_SIR[1], colours_SIR[1], colours_SIR[2], colours_SIR[3]) | ||||||
|     } |     } | ||||||
|  |     if (length(colours_SIR) == 4) { | ||||||
|  |       # add colours for SI (same as S) and IR (same as R) | ||||||
|  |       colours_SIR <- c(colours_SIR[1:4], colours_SIR[1], colours_SIR[4]) | ||||||
|  |     } | ||||||
|     names(colours_SIR) <- sir_order |     names(colours_SIR) <- sir_order | ||||||
|   } else { |   } else { | ||||||
|     # named input: match and reorder |     # named input: match and reorder | ||||||
|     stop_ifnot( |     stop_ifnot( | ||||||
|       all(names(colours_SIR) %in% sir_order), |       all(names(colours_SIR) %in% sir_order), | ||||||
|       "Unknown names in `colours_SIR`. Expected any of: ", vector_or(sir_order, quotes = FALSE, sort = FALSE), "." |       "Unknown names in `colours_SIR`. Expected any of: ", vector_or(levels(NA_sir_), quotes = FALSE, sort = FALSE), "." | ||||||
|     ) |     ) | ||||||
|  |     if (length(colours_SIR) == 4) { | ||||||
|  |       # add colours for SI (same as S) and IR (same as R) | ||||||
|  |       colours_SIR <- c(colours_SIR[1:4], SI = unname(colours_SIR[1]), IR = unname(colours_SIR[4])) | ||||||
|  |     } | ||||||
|     colours_SIR <- colours_SIR[sir_order] |     colours_SIR <- colours_SIR[sir_order] | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user