Gallery › Data visualization

Field Notes

A marsh census set as a field journal: bar and line charts on one axis, a donut chart, handwritten labels.

Field Notes, a naturalist's journal page with a bar chart and line chart sharing one axis, and a donut chart with a hand-lettered legend
Click the picture for the full-size render.

How it is made

dataviz.ps's barchart and linechart share one category axis, plotting weekly sightings against a temperature trend. A species-mix donut chart has a hand-drawn legend, and all of the lettering is in the HandScript font.

Details

Category
Data visualization
Tags
lettering handwriting
Libraries
dataviz, handscript
Added
2026-08-07
Built in
issue #14
Page size
700 × 600 points

Source

View source the whole program in a scrolling window, or read gallery/field_notes.ps on GitHub. To draw it yourself, from a checkout of the repository:

pscat --page 700x600 gallery/field_notes.ps
The first 40 of 89 lines of the source
%!PS-Adobe-3.0
%%Title: Field Notes — a naturalist's data page (issue #14, dataviz.ps)
%%BoundingBox: 0 0 700 600
%%EndComments

% A marsh census written up like a field journal: a bar+line combo
% (weekly sightings against a temperature trend, sharing one category
% axis — the reason dataviz.ps's linechart deliberately samples at
% the same category centers barchart uses) and a species-mix donut
% with a hand-drawn legend. Ink and captions in the Stage 12
% /HandScript dynamic font; everything data-shaped comes from
% lib/dataviz.ps's default color cycle rather than hand-picked colors,
% so the two libraries stay cleanly separable. Run from the repo root:
%
%   pscat --page 700x600 gallery/field_notes.ps

(lib/dataviz.ps) run
(lib/handscript.ps) run

/showctr { /tky exch def /tkx exch def /tks exch def
    tkx tks stringwidth pop 2 div sub tky moveto tks show } def

% --- parchment page ---------------------------------------------------
0.98 0.965 0.93 setrgbcolor clippath fill
0.55 0.47 0.34 setrgbcolor 1 setlinewidth
newpath 18 18 moveto 682 18 lineto 682 582 lineto 18 582 lineto closepath stroke
newpath 24 24 moveto 676 24 lineto 676 576 lineto 24 576 lineto closepath stroke

0.18 0.13 0.07 setrgbcolor

% --- title -------------------------------------------------------------
/HandScript findfont 44 scalefont setfont
50 528 moveto (field notes) show
/HandScript findfont 16 scalefont setfont
52 496 moveto (marsh census -- eight weeks) show
0.55 0.47 0.34 setrgbcolor 0.8 setlinewidth
newpath 50 484 moveto 650 484 lineto stroke

% --- left panel: sightings (bars) + temperature/5 (line) ------------------
/Sightings [4 7 5 9 12 8 14 10] def