NDPalette

NDPalette provides color palettes that approximate the University of Notre Dame brand colors, together with ggplot2 color and fill scales. These colors are well suited to statistical visualization and psychometric analysis: the white-safe ordering keeps groups legible in plots of data, and the near-white-to-navy ramps suit continuous quantities such as correlations and factor loadings. The default palette leads with six Notre Dame brand colors that read clearly on a white background and extends through seven former Notre Dame colors, interpolating when more colors are needed than the brand supplies. This is an independent project and is not affiliated with or endorsed by the University.

Installation

# install.packages("remotes")
remotes::install_github("yelleKneK/NDPalette")

A gallery of the palettes with ggplot2 examples (one through ten groups, common chart types, the alternative palettes, the brand tints, and theming) is in the package vignette. Run vignette("NDPalette"), or read vignettes/NDPalette.Rmd.

The Notre Dame palette

The default "nd" palette begins with six Notre Dame brand colors, in white-safe priority order:

library(NDPalette)

cols <- nd_palette(6)
labs <- c("ND Blue", "Bright Gold", "Green",
          "Bright Blue", "Metallic Gold", "Dark Sky Blue")
txt  <- c("white", "black", "white", "white", "black", "black")

op <- par(mar = c(0, 0, 0, 0))
image(seq_along(cols), 1, as.matrix(seq_along(cols)),
      col = cols, axes = FALSE, xlab = "", ylab = "")
text(seq_along(cols), 1.15, labs, col = txt, cex = 0.9)
text(seq_along(cols), 0.85, cols, col = txt, cex = 0.8)

par(op)

Beyond six, it continues through the seven former Notre Dame brand colors, thirteen in all. show_palette() previews the whole thing (it defaults to the full Notre Dame palette):

show_palette()

Each color has a readable name, too. Passing a character vector to the labels argument prints those names on the swatches in place of the hex values (nd_colors is the full table of names, hex values, and roles):

show_palette(nd_palette(), labels = nd_colors$name[match(nd_palette(), nd_colors$hex)])

Usage

In a ggplot2 plot, add the scale; it maps the grouping levels to the Notre Dame colors automatically:

library(ggplot2)

ggplot(iris, aes(Sepal.Length, Petal.Length, colour = Species)) +
  geom_point() +
  scale_colour_nd()

ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) +
  geom_bar() +
  scale_fill_nd()

Outside ggplot2, ask nd_palette() for the hex vector and use it anywhere that accepts colors:

nd_palette(3)
#> [1] "#0c2340" "#d39f10" "#0a843d"
barplot(c(3, 5, 2), col = nd_palette(3))

Past the first six, the palette continues into the former Notre Dame colors, interpolating beyond the thirteen anchors:

nd_palette(8)
#> [1] "#0c2340" "#d39f10" "#0a843d" "#1c4f8f" "#c1cddd" "#ae9142" "#36deb8"
#> [8] "#4c1c2a"

A colorblind-friendly ordering of the actual Notre Dame colors is available as "nd_cvd", arranged so the colors stay distinguishable under simulated deuteranopia, protanopia, and tritanopia. It leads with the CVD-safe ND Blue and Bright Gold:

nd_palette(5, palette = "nd_cvd")
#> [1] "#0c2340" "#d39f10" "#36deb8" "#0a843d" "#1c4f8f"

The scale_*_nd() scales take a palette argument, so the colorblind-friendly palette drops into a plot just like the default, with scale_color_nd(palette = "nd_cvd").

The fixed anchors are exported as nd_palettes for tools (for example paletteer) and for users who want the raw values:

nd_palettes$nd
#>  [1] "#0c2340" "#d39f10" "#0a843d" "#1c4f8f" "#c1cddd" "#ae9142" "#36deb8"
#>  [8] "#4c1c2a" "#342551" "#a8a600" "#456300" "#e3e361" "#1e1a13"

Statistical and psychometric visualization

These colors are meant for plots of data. A two-group fill maps to ND Blue and Bright Gold, which suits the figures that recur in psychometric work, such as a chart of standardized factor loadings:

loadings <- matrix(
  c(.74, .18, .69, .12, .78, .24, .81, .07,
    .22, .71, .15, .79, .09, .66, .25, .80),
  nrow = 2,
  dimnames = list(c("Verbal", "Quantitative"), paste0("Item ", 1:8)))

barplot(loadings, beside = TRUE, col = nd_palette(2), border = NA,
        ylab = "standardized loading", xlab = "item",
        main = "Factor loadings", legend.text = rownames(loadings),
        args.legend = list(bty = "n"))

The package vignette carries the idea further with ggplot2: a correlation heatmap that ramps from a near-white tint to navy for a matrix of item intercorrelations, and a set of item characteristic curves that gives each item one of the well-separated brand colors. Run vignette("NDPalette") for those.

Finding a color by name

Every color the package knows about is cataloged in nd_colors, a data frame that labels each color with its brand (University, Athletics, or none) and its role (primary, secondary, former, tint, informal, or neutral). It now includes every official color on the University branding page, among them Medium Blue, Dark Gold, and Light Green. nd_color() pulls hex values out of that table by name or by role, which is handier than a palette name when you want one or two specific colors:

nd_color("navy", "green")
#> [1] "#0c2340" "#0a843d"
nd_color(role = "former")
#> [1] "#36deb8" "#4c1c2a" "#342551" "#a8a600" "#456300" "#e3e361" "#1e1a13"

The table also carries the Notre Dame Athletics colors for reference. Athletics is a separate brand system: it shares ND Blue with the University, pairs it with a warmer Standard Dome Gold and a metallic gold that has no sanctioned digital value (its hex is NA), and uses an Irish Green a single Pantone step from the University green. The Athletics colors are reference only and never enter nd_palette() or the scales.

nd_colors
#>                   name                key     hex      brand      role
#> 1              ND Blue               navy #0c2340 university   primary
#> 2     ND Metallic Gold      metallic_gold #ae9142 university   primary
#> 3          Medium Blue        medium_blue #143865 university secondary
#> 4          Bright Blue        bright_blue #1c4f8f university secondary
#> 5            Dark Gold          dark_gold #8c7535 university secondary
#> 6          Bright Gold        bright_gold #d39f10 university secondary
#> 7                Green              green #0a843d university secondary
#> 8          Light Green        light_green #b3dac5 university secondary
#> 9        Dark Sky Blue      dark_sky_blue #c1cddd university secondary
#> 10          Warm White         warm_white #efe9d9 university      tint
#> 11    Light Warm White   light_warm_white #f8f4ec university      tint
#> 12     Medium Sky Blue    medium_sky_blue #e1e8f2 university      tint
#> 13      Light Sky Blue     light_sky_blue #edf2f9 university      tint
#> 14                Teal               teal #36deb8 university    former
#> 15              Maroon             maroon #4c1c2a university    former
#> 16              Purple             purple #342551 university    former
#> 17         Light Olive        light_olive #a8a600 university    former
#> 18          Dark Olive         dark_olive #456300 university    former
#> 19         Pale Yellow        pale_yellow #e3e361 university    former
#> 20               Black              black #1e1a13 university    former
#> 21         Faint White        faint_white #fdfcfa       none  informal
#> 22          Soft White         soft_white #faf7f1       none  informal
#> 23        Faint Yellow       faint_yellow #fefdf3       none  informal
#> 24 Soft Yellow (light)  soft_yellow_light #fdf9e6       none  informal
#> 25         Soft Yellow        soft_yellow #faf3d7       none  informal
#> 26  Soft Yellow (warm)   soft_yellow_warm #f6edc6       none  informal
#> 27     Notre Dame Blue     athletics_blue #0c2340  athletics   primary
#> 28  Standard Dome Gold          dome_gold #c99700  athletics   primary
#> 29  Metallic Dome Gold metallic_dome_gold    <NA>  athletics   primary
#> 30         Irish Green        irish_green #00843d  athletics secondary
#> 31               White    athletics_white #ffffff  athletics   neutral
#>    white_safe   pms
#> 1        TRUE   289
#> 2        TRUE 10127
#> 3        TRUE  2154
#> 4        TRUE  2945
#> 5        TRUE  4495
#> 6        TRUE   117
#> 7        TRUE   347
#> 8        TRUE  2246
#> 9        TRUE  5376
#> 10      FALSE  4545
#> 11      FALSE  9064
#> 12      FALSE   650
#> 13      FALSE   656
#> 14       TRUE  <NA>
#> 15       TRUE  <NA>
#> 16       TRUE  <NA>
#> 17       TRUE  <NA>
#> 18       TRUE  <NA>
#> 19       TRUE  <NA>
#> 20       TRUE  <NA>
#> 21      FALSE  <NA>
#> 22      FALSE  <NA>
#> 23      FALSE  <NA>
#> 24      FALSE  <NA>
#> 25      FALSE  <NA>
#> 26      FALSE  <NA>
#> 27       TRUE   289
#> 28       TRUE   117
#> 29         NA  8642
#> 30       TRUE   348
#> 31      FALSE  <NA>
#>                                                                                            description
#> 1                                                              Primary. The signature Notre Dame Blue.
#> 2                                                               Primary. The metallic Notre Dame Gold.
#> 3                                              Secondary. A deep blue between ND Blue and Bright Blue.
#> 4                                                                        Secondary. A bright mid blue.
#> 5                                                                     Secondary. A muted, darker gold.
#> 6                                    Secondary. A saturated gold; the anchor gold of the data palette.
#> 7                                                                     Secondary. The Notre Dame green.
#> 8                                                                       Secondary. A pale, soft green.
#> 9                                      Secondary. The one sky blue dark enough to use as a data color.
#> 10                                                 Near-white tint. A warm cream for page backgrounds.
#> 11                                                              Near-white tint. A lighter warm cream.
#> 12                                                                       Near-white tint. A pale blue.
#> 13                                                            Near-white tint. The lightest pale blue.
#> 14                                                   Former secondary Notre Dame color. A bright teal.
#> 15                               Former secondary Notre Dame color. A deep maroon (dark brownish red).
#> 16 Former tertiary Notre Dame color; the only former color of the tertiary tier. A dark violet purple.
#> 17                                            Former secondary Notre Dame color. A yellow-green olive.
#> 18                                              Former secondary Notre Dame color. A dark olive green.
#> 19                                        Former secondary Notre Dame color. A soft chartreuse yellow.
#> 20                                               Former secondary Notre Dame color. A warm near-black.
#> 21                      Informal background (not an ND brand color). A warm white just off pure white.
#> 22                                     Informal background (not an ND brand color). A soft warm white.
#> 23                     Informal background (not an ND brand color). A soft yellow just off pure white.
#> 24                             Informal background (not an ND brand color). A light, soft warm yellow.
#> 25                                         Informal background (not an ND brand color). A soft yellow.
#> 26                                  Informal background (not an ND brand color). A warmer soft yellow.
#> 27                                             Athletics. Notre Dame Blue, shared with the University.
#> 28                                                           Athletics. The warmer Standard Dome Gold.
#> 29                          Athletics. Metallic Dome Gold; a Pantone metallic ink with no digital hex.
#> 30                                 Athletics. Irish Green, one Pantone step from the University green.
#> 31                                                                                   Athletics. White.

Former Notre Dame colors

The seven colors past the first six are former Notre Dame brand colors: historical brand colors no longer in the current brand guide. They are approximate, legacy colors, included only to extend the palette past six, and are not part of the current Notre Dame brand. A color such as purple appearing in this set should not be read as a current, primary, or signature Notre Dame color. They round out the default "nd" palette beyond six, and they are also available on their own:

nd_palette(palette = "former")
#> [1] "#36deb8" "#4c1c2a" "#342551" "#a8a600" "#456300" "#e3e361" "#1e1a13"
show_palette(nd_palette(palette = "former"))

Brand tints

Four Notre Dame brand tints are too light to read as data on a white background, so nd_palette() never returns them. They remain useful brand colors away from the data layer, exported as nd_tints for panel backgrounds, fills behind text, and the light end of a sequential ramp running from a pale tint to a dark brand color:

nd_tints
#>       warm_white light_warm_white  medium_sky_blue   light_sky_blue 
#>        "#efe9d9"        "#f8f4ec"        "#e1e8f2"        "#edf2f9"

ramp <- grDevices::colorRampPalette(c(nd_tints[["light_sky_blue"]],
                                      nd_palette(1)))(7)
show_palette(ramp)

Six informal warm backgrounds are also provided as nd_informal_tints, from a very light warm white to a warmer soft yellow (the two faint_* tints sit just off pure white for the lightest touch). These are not Notre Dame brand colors; they are alternatives to a white background for HTML reports, vignettes, and Shiny apps (vignette("NDPalette-shiny") uses them):

nd_informal_tints
#>       faint_white        soft_white      faint_yellow soft_yellow_light 
#>         "#fdfcfa"         "#faf7f1"         "#fefdf3"         "#fdf9e6" 
#>       soft_yellow  soft_yellow_warm 
#>         "#faf3d7"         "#f6edc6"

Color choices

The default palette deliberately excludes four Notre Dame brand colors that read poorly as data colors on a white background: Warm White, Light Warm White, Medium Sky Blue, and Light Sky Blue. Among the sky blues only Dark Sky Blue is admissible as a data color. Those four tints are not discarded; they are exported as nd_tints for backgrounds and ramps (see above). The thirteen data colors are the six leading brand colors and the seven former Notre Dame brand colors; past thirteen the set is interpolated. The colors approximate those in the University branding guidelines.

NDPalette is a small, single-purpose palette package. For general color-palette machinery, see Emil Hvitfeldt’s palettes package and the companion r-color-palettes gallery, which catalogs many palette packages for R. NDPalette is distinct in focusing on one institution’s colors, curated and ordered for statistical visualization and psychometric analysis rather than as a general framework.

Citation

To cite NDPalette in a publication, use

citation("NDPalette")

which returns the entry in inst/CITATION. Please cite a specific version so the reference is unambiguous. Once a release is archived on Zenodo the citation carries a DOI; cite the DOI whenever one is available, since a single consistent, DOI-backed citation is what lets indexes such as Google Scholar group citations to the package into one record.