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.
56 lines
1.4 KiB
56 lines
1.4 KiB
# Name ggplot grid object
|
|
# Convenience function to name grid objects
|
|
#
|
|
# @keyword internal
|
|
ggname <- function(prefix, grob) {
|
|
grob$name <- grid::grobName(grob, prefix)
|
|
grob
|
|
}
|
|
|
|
|
|
.sb_invert <- function(hex_color, dark_color="black", light_color="white",
|
|
na_color="white") {
|
|
|
|
hex_color <- gsub("#", "", hex_color)
|
|
|
|
R <- suppressWarnings(as.integer(paste("0x", substr(hex_color,1,2), sep="")))
|
|
G <- suppressWarnings(as.integer(paste("0x", substr(hex_color,3,4), sep="")))
|
|
B <- suppressWarnings(as.integer(paste("0x", substr(hex_color,5,6), sep="")))
|
|
|
|
YIQ <- ((R*299) + (G*587) + (B*114)) / 1000
|
|
|
|
return(
|
|
ifelse(is.na(YIQ), na_color,
|
|
ifelse(
|
|
YIQ >= 128, dark_color, light_color)
|
|
)
|
|
)
|
|
}
|
|
|
|
# sanity checks for country values
|
|
validate_countries <- function(country_data, country_col, merge.x, ignore_dups=FALSE) {
|
|
|
|
good_ccs <- country_data[[country_col]] %in% wtg[[merge.x]]
|
|
|
|
if (any(!good_ccs)) {
|
|
invalid <- country_data[[country_col]][which(!good_ccs)]
|
|
country_data <- country_data[which(good_ccs),]
|
|
warning(sprintf("Found invalid country values: %s", paste0(invalid, collapse=", ")))
|
|
}
|
|
|
|
if (!ignore_dups) {
|
|
dups <- duplicated(country_data[,country_col])
|
|
if (any(dups)) {
|
|
country_data <- country_data[which(!dups),]
|
|
warning("Removing duplicate country rows")
|
|
}
|
|
}
|
|
|
|
return(country_data)
|
|
|
|
}
|
|
|
|
|
|
"%||%" <- function(a, b) { if (!is.null(a)) a else b }
|
|
|
|
.pt <- 2.84527559055118
|