mirror of
https://github.com/dchakro/shared_Rscripts.git
synced 2026-05-17 09:12:16 -07:00
function to generate palette for categorical data
This commit is contained in:
parent
709628702b
commit
6830c78d55
1 changed files with 63 additions and 0 deletions
63
returnPalette.R
Normal file
63
returnPalette.R
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
returnPalette <- function(ColorVariable = NULL) {
|
||||
# #<---------------------------->
|
||||
# # You must include this section when:
|
||||
# # Distributing, Using and/or Modifying this code.
|
||||
# # Please read and abide by the terms of the included LICENSE.
|
||||
# # Copyright 2023, Deepankar Chakroborty, All rights reserved.
|
||||
# #
|
||||
# # Author : Deepankar Chakroborty (https://github.com/dchakro)
|
||||
# # Website: https://www.dchakro.com
|
||||
# # Report issues: https://github.com/dchakro/shared_Rscripts/issues
|
||||
# # License: https://github.com/dchakro/shared_Rscripts/blob/master/LICENSE
|
||||
# #<---------------------------->
|
||||
|
||||
|
||||
# # PURPOSE:
|
||||
# # Generates an appropriate palette for categorical data based on its length
|
||||
|
||||
|
||||
if (class(ColorVariable) == "character") {
|
||||
colorsNeeded <- length(unique(ColorVariable))
|
||||
if (colorsNeeded < 1) {
|
||||
myPalette <- c("#DD0000")
|
||||
warning("Nothing to return color for.")
|
||||
}
|
||||
if (colorsNeeded > 1 & colorsNeeded < 10) {
|
||||
myPalette <- palette.colors(n = colorsNeeded,
|
||||
palette = "Classic Tableau")
|
||||
} else if (colorsNeeded > 10 & colorsNeeded < 18) {
|
||||
set.seed(2023)
|
||||
myPalette <- sample(
|
||||
palette.colors(n = 10,
|
||||
palette = "Classic Tableau"),
|
||||
palette.colors(n = colorsNeeded - 10,
|
||||
palette = "Set2")
|
||||
)
|
||||
} else if (colorsNeeded > 18) {
|
||||
myPalette <- sample(hcl.colors(n = colorsNeeded,
|
||||
palette = "Spectral"))
|
||||
}
|
||||
}
|
||||
if (class(ColorVariable) == "factor") {
|
||||
colorsNeeded <- length(levels(ColorVariable))
|
||||
if (colorsNeeded < 1) {
|
||||
myPalette <- c("#DD0000")
|
||||
warning("Nothing to return color for.")
|
||||
}
|
||||
if (colorsNeeded > 1 & colorsNeeded < 10) {
|
||||
myPalette <- palette.colors(n = colorsNeeded,
|
||||
palette = "Classic Tableau")
|
||||
} else if (colorsNeeded > 10 & colorsNeeded < 18) {
|
||||
set.seed(2023)
|
||||
myPalette <- sample(
|
||||
palette.colors(n = 10,
|
||||
palette = "Classic Tableau"),
|
||||
palette.colors(n = colorsNeeded - 10,
|
||||
palette = "Set2")
|
||||
)
|
||||
} else if (colorsNeeded > 18) {
|
||||
myPalette <- sample(hcl.colors(n = colorsNeeded,
|
||||
palette = "Spectral"))
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue