palettes¶
The palettes module provides color palettes optimized for data visualization.
Module Overview¶
This module provides:
- Four built-in MSU-branded palettes
MSUPaletteclass for palette management- Functions to access and list palettes
- Format conversion for matplotlib, seaborn, and plotly
Classes¶
MSUPalette
¶
MSU Color Palette class.
This class represents a color palette and provides methods to: - Get colors as hex strings - Get colors as RGB tuples - Generate matplotlib colormaps - Interpolate colors for continuous palettes
Source code in msuthemes/palettes.py
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | |
Functions¶
__init__(colors, palette_type, name='')
¶
Initialize an MSU color palette.
Args: colors: List of hex color codes palette_type: Type of palette ("seq", "div", or "qual") name: Name of the palette
Source code in msuthemes/palettes.py
as_hex(n_colors=None, reverse=False)
¶
Get colors as hex strings.
Args: n_colors: Number of colors to return. If None, returns all colors. If greater than palette length, interpolates (continuous mode). reverse: If True, reverse the color order
Returns: List of hex color strings
Examples: >>> palette = msu_seq >>> palette.as_hex() # All colors >>> palette.as_hex(n_colors=5) # 5 colors >>> palette.as_hex(n_colors=5, reverse=True) # 5 colors, reversed
Source code in msuthemes/palettes.py
as_rgb(n_colors=None, reverse=False)
¶
Get colors as RGB tuples (0-255 range).
Args: n_colors: Number of colors to return. If None, returns all colors. If greater than palette length, interpolates (continuous mode). reverse: If True, reverse the color order
Returns: List of RGB tuples with values in 0-255 range
Examples: >>> palette = msu_seq >>> palette.as_rgb() # All colors as RGB >>> palette.as_rgb(n_colors=5) # 5 colors as RGB >>> palette.as_rgb(n_colors=5, reverse=True) # 5 colors, reversed
Source code in msuthemes/palettes.py
as_matplotlib_cmap(name=None, n_colors=256)
¶
Create a matplotlib colormap from the palette.
Args: name: Name for the colormap (defaults to palette name) n_colors: Number of discrete colors for qualitative palettes
Returns: matplotlib colormap object
Examples: >>> import matplotlib.pyplot as plt >>> cmap = msu_seq.as_matplotlib_cmap() >>> plt.imshow([[1,2,3]], cmap=cmap)
Source code in msuthemes/palettes.py
Palette Objects¶
msu_seq = MSUPalette(colors=['#18453B', '#2F574E', '#466A62', '#5D7C75', '#748F89', '#8BA29D', '#A2B4B0', '#B9C7C4', '#D0D9D7', '#E7ECEB'], palette_type='seq', name='msu_seq')
module-attribute
¶
MSU Sequential Palette - Main (10 colors, green-based)
msu_div = MSUPalette(colors=['#E41B12', '#EB5751', '#F29490', '#F9D1CF', '#D4D4D4', '#CCEBF3', '#88D0E3', '#43B6D3', '#009CC4'], palette_type='div', name='msu_div')
module-attribute
¶
MSU Diverging Palette (9 colors, red to blue)
msu_qual1 = MSUPalette(colors=['#18453B', '#0DB14B', '#97A2A2', '#F08521', '#008183', '#909AB7', '#535054', '#D1DE3F', '#E8D9B5', '#C89A58', '#94AE4A', '#6E005F', '#CB5A28'], palette_type='qual', name='msu_qual1')
module-attribute
¶
MSU Qualitative Palette 1 (13 colors for categorical data)
msu_qual2 = MSUPalette(colors=['#18453B', '#F08521', '#6E005F', '#97A2A2'], palette_type='qual', name='msu_qual2')
module-attribute
¶
MSU Qualitative Palette 2 (4 colors for categorical data)
Functions¶
get_palette(name)
¶
Get a palette by name.
Args: name: Name of the palette
Returns: MSUPalette object
Raises: ValueError: If palette name not found
Examples: >>> palette = get_palette("msu_seq") >>> colors = palette.as_hex(n_colors=5)
Source code in msuthemes/palettes.py
list_palettes()
¶
List all available palette names.
Returns: List of palette names
Examples: >>> palettes = list_palettes() >>> print(palettes) ['msu_seq', 'msu_seq_red', ...]
Source code in msuthemes/palettes.py
Palette Dictionary¶
MSU_PALETTES = {'msu_seq': msu_seq, 'msu_seq2': msu_seq2, 'msu_seq_red': msu_seq_red, 'msu_seq_purple': msu_seq_purple, 'msu_seq_yellow': msu_seq_yellow, 'msu_seq_blue': msu_seq_blue, 'msu_seq_orange': msu_seq_orange, 'msu_seq_green': msu_seq_green, 'msu_div': msu_div, 'msu_div2': msu_div2, 'msu_core': msu_core, 'msu_qual1': msu_qual1, 'msu_qual2': msu_qual2, 'bigten_primary': bigten_primary, 'bigten_secondary': bigten_secondary}
module-attribute
¶
Dictionary of all MSU palettes for easy access by name
Usage Examples¶
Getting a Palette¶
from msuthemes import get_palette
# Get sequential palette
seq = get_palette('msu_seq')
colors = seq.as_hex()
print(colors)
Using with Matplotlib¶
from msuthemes import msu_seq
import matplotlib.pyplot as plt
import numpy as np
data = np.random.rand(10, 10)
plt.imshow(data, cmap=msu_seq.as_matplotlib_cmap())
plt.colorbar()
plt.show()
Using with Seaborn¶
from msuthemes import msu_qual1
import seaborn as sns
palette = msu_qual1.as_seaborn_palette()
sns.boxplot(data=data, palette=palette)
plt.show()
Creating Custom Palettes¶
from msuthemes.palettes import MSUPalette
# Create custom palette
custom = MSUPalette(
name='my_palette',
colors=['#18453b', '#ff6e1b', '#008183'],
palette_type='qual'
)
hex_colors = custom.as_hex()
rgb_colors = custom.as_rgb()
See Also¶
- Palette Guide - Detailed palette usage guide
- Gallery - Example visualizations