Font Families¶
dartwork-mpl bundles 9 professional font families with a total of 130 font variants. Each family is optimized for different use cases in data visualization.
Roboto (Default)¶
Google’s flagship sans-serif typeface and the default font in dartwork-mpl. Roboto features friendly, open curves while maintaining a mechanical skeleton, making it highly legible at all sizes.
Variants: 15 (Thin, Light, Regular, Medium, Bold, Black + Italics)
Best For:
General-purpose body text
Axis labels and tick marks
Legends and annotations
Usage:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Roboto'
plt.rcParams['font.weight'] = 300 # Light weight (dartwork default)
Inter¶
A modern sans-serif typeface designed specifically for computer screens. Inter features a tall x-height for improved readability at small sizes and includes many OpenType features.
Variants: 20 (Thin through Black, with Italics)
Best For:
UI-style visualizations
Presentations and slides
Screen-first publications
Usage:
plt.rcParams['font.family'] = 'Inter'
InterDisplay¶
The display variant of Inter, optimized for larger sizes. Features tighter letter-spacing and refined details that shine at headline sizes.
Variants: 20 (Thin through Black, with Italics)
Best For:
Figure titles
Section headings
Large callout text
Usage:
ax.set_title("Main Title", fontfamily='Inter Display', fontsize=24)
Noto Sans¶
Google’s Noto Sans provides harmonious typography across hundreds of languages. The name “Noto” comes from “No Tofu”—the goal of eliminating the blank boxes (tofu) that appear when a font lacks a glyph.
Variants: 15 (ExtraLight through Black, with Italics)
Best For:
Multi-language documents
International publications
Unicode-heavy content
Usage:
plt.rcParams['font.family'] = 'Noto Sans'
Noto Sans Condensed¶
The condensed variant of Noto Sans, providing the same excellent character coverage in a narrower form factor.
Variants: 20 (Thin through Black, with Italics)
Best For:
Tables with many columns
Dense data visualizations
Space-constrained layouts
Usage:
plt.rcParams['font.family'] = 'Noto Sans Condensed'
Noto Sans SemiCondensed¶
A middle ground between regular Noto Sans and the fully condensed variant. Offers good space efficiency while maintaining excellent readability.
Variants: 20 (Thin through Black, with Italics)
Best For:
Legends with many entries
Compact labels
Moderate space savings
Usage:
plt.rcParams['font.family'] = 'Noto Sans SemiCondensed'
Noto Sans ExtraCondensed¶
The most condensed variant in the Noto Sans family. Use when space is at an absolute premium.
Variants: 20 (Thin through Black, with Italics)
Best For:
Very tight axis labels
Narrow figure margins
Maximum information density
Usage:
plt.rcParams['font.family'] = 'Noto Sans ExtraCondensed'
Noto Sans Math¶
A dedicated font for mathematical typesetting. Noto Sans Math provides comprehensive coverage of mathematical symbols, operators, and special characters used in scientific notation.
Variants: 1 (Regular only)
Best For:
Scientific equations
Mathematical notation
Greek letters and symbols
Usage in dartwork-mpl:
Noto Sans Math is automatically configured for mathtext rendering:
# These settings are applied by dartwork-mpl styles
plt.rcParams['mathtext.fontset'] = 'custom'
plt.rcParams['mathtext.rm'] = 'Noto Sans Math'
plt.rcParams['mathtext.it'] = 'Noto Sans Math:italic'
plt.rcParams['mathtext.bf'] = 'Noto Sans Math:bold'
Example:
ax.set_xlabel(r'$\alpha = \frac{\Delta x}{\Delta t}$')
ax.set_ylabel(r'$\sum_{i=1}^{n} x_i^2$')
Paperlogy¶
A clean, professional typeface designed specifically for documents and papers. Paperlogy offers excellent readability in dense text environments typical of academic and business publications.
Variants: 9 (Light through Black)
Best For:
Academic papers
Technical reports
Professional documents
Usage:
plt.rcParams['font.family'] = 'Paperlogy'
Font Weight Reference¶
All font families (except Noto Sans Math) include multiple weights:
Weight Name |
Numeric Value |
Description |
|---|---|---|
Thin |
100 |
Extremely light |
ExtraLight |
200 |
Very light |
Light |
300 |
Light (dartwork default) |
Regular |
400 |
Normal |
Medium |
500 |
Slightly bold |
SemiBold |
600 |
Semi-bold |
Bold |
700 |
Bold |
ExtraBold |
800 |
Extra bold |
Black |
900 |
Maximum weight |
Using Weights:
# Direct weight specification
ax.set_title("Title", fontweight=700)
# Or use the fw() helper for relative weights
ax.set_title("Title", fontweight=dm.fw(2)) # base + 200