Skip to content
Internals

Graphic Design

The third tradition GoFish blends in is graphic design — the craft of making a chart that is not merely correct but good. A chart can plot every number faithfully and still fail to communicate. Graphic design is what closes that gap, and GoFish treats it as a first-class concern, not a layer of polish applied at the end.

Three pieces of that craft shape GoFish most: Gestalt principles, color, and typography.

Gestalt principles

The Gestalt principles describe how the visual system groups what it sees — elements placed close together (proximity), elements that look alike (similarity), elements inside a shared boundary (common region), elements joined by a line (connectedness). They are not decoration. They are the mechanism by which a reader perceives any structure in a chart at all.

This is where graphic design and UI component frameworks meet. GoFish's graphical operators are, quite directly, Gestalt principles turned into composition primitives: spread is proximity and uniform density, stack is alignment, enclose is common region, connect and arrow are connectedness. Composing a chart in GoFish is composing it out of Gestalt relations. Bluefish made this correspondence explicit — its relational standard library is drawn straight from the Gestalt relations — and GoFish carries it forward.

Color

In data visualization, color is above all a tool for emphasis — for steering the reader's attention to the few things that matter. And the most important color is gray. A well-designed chart is mostly grays, with saturated color spent sparingly, only where the eye should land.

Most visualization libraries do not center gray. They hand you a categorical palette and encourage you to color everything — which spends the reader's attention evenly and so emphasizes nothing. GoFish treats gray as the default and color as a deliberate act of emphasis. Datawrapper's How to use color to emphasize is the clearest short statement of this approach.

This is the design-craft companion to the PL essay's point about color. That essay argues GoFish should not restrict you to perceptually optimal palettes; this one argues that, given the freedom, the well-designed use of color is mostly restraint. See Color Scale Resolution for the mechanism.

Typography

Typography matters as much as color, and it is the most underdeveloped part of visualization tooling — GoFish's own included. Here it is a stated direction more than a finished feature.

The intent has three parts:

  • Semantic type, not raw point sizes. Following SwiftUI's lead, text should be sized by role — a title, a label, a caption — with a theme deciding the actual measurements. This is one piece of a broader move toward theming.
  • Labels as first-class. In most visualization libraries a label — a piece of text annotating a mark — is an afterthought, or absent entirely. In GoFish, labels are a central part of the system; see Labels.
  • Attention to detail. The fine craft of setting text — Jost Hochuli's Detail in Typography is the touchstone — is something charts almost never get right, and GoFish wants to.

Sources

  • How to use color to emphasize — Datawrapper, on color, emphasis, and the centrality of gray.
  • Detail in Typography — Jost Hochuli, on the micro-craft of setting text.
  • Building Science Graphics — Jen Christiansen, on the craft of explanatory data graphics.