These are counts in one KanjiVG snapshot. A correlation is not a rule.

When a dot is drawn it flashes and then stays. The dot just reached is indigo. An earlier dot stays cinnabar. A stroke that is not a dot keeps the ordinary ink. Click a plate to replay. With reduced motion the finished character stays still, and the colors stay. The flash is optional data-dots. A plate without it does not flash a stroke. The draw timings are unchanged.

On this page

How a dot is counted

A stroke is a path whose id contains -sN. The order is that numbering. kvg:type is read as the file writes it. A trailing run of ASCII letters on a slash-separated piece is a variant letter. The letter-stripped form deletes those letters and keeps the slash. ㇔a and ㇔ are one string. ㇐b/㇔ is ㇐/㇔.

A dot is a stroke whose letter-stripped type is ㇔. The helper is normalize in tools/stroke_types.py. ㇀ is a different stroke, and this page keeps it separate. A string that still contains a slash stays a compound. The stroke-type inventory already lists each written string, including the dot family and the rising stroke, and gives the early, middle, and late thirds of each string. This page keeps the letter-stripped dot as one set.

Dot
A stroke whose letter-stripped kvg:type is ㇔. ㇔ and ㇔a are both dots. A compound such as ㇐/㇔ is a different string.
Rising stroke
㇀, letter-stripped, is its own row. It is the third stroke of 氵 in this snapshot: the first two strokes are ㇔, and the third is ㇀. The three marks are a run of two dots and then a rising stroke.
Rank tenth
The bin of k/n. b = ⌈10k/n⌉ − 1, so k/n lies in (b/10, (b+1)/10]. The helper is rank_tenth in tools/stroke_start.py. Ten bins. Stroke 1 of a ten-stroke character is the first bin. Stroke 1 of a two-stroke character is the fifth bin, because 1/2 is 0.5.
First, last, middle, sole
First is k = 1 on a character of more than one stroke. Last is k = n on a character of more than one stroke. Middle is a stroke strictly between them. Sole is the one stroke of a one-stroke character. The four rows add to the dots. The first-and-last page pairs the family of stroke 1 with the family of stroke n, and a one-stroke character is both. This page puts that character in the sole row, so the rows add once.
Run
A maximal consecutive sequence of dots in -sN order. 心 is a run of one and then a run of two, because stroke 2 is a bend. 灬 is one run of four. A run is a fact about the stroke order. Whether a component is repeated inside a character is the repeated-components page.
Nearest non-dot stroke
Each stroke is 16 samples, equally spaced in arc length on the flattened polyline, both endpoints included, in thousandths of the 109 box. The distance is the minimum Euclidean distance between a sample of the dot and a sample of a non-dot stroke, compared as a squared distance. The nearest stroke is the one with the smallest squared distance. A tie takes the stroke closer in the order, the smaller |k − j|. If one earlier stroke and one later stroke remain, the earlier stroke wins. The sampling is the same 16-point minimum the proximity page uses. This page asks a different question: the neighbour may be earlier or later, and it is not a dot.
Before and after
The dot is before the nearest non-dot stroke when that stroke’s number is greater, and after it when that stroke’s number is smaller. A character with no non-dot stroke has its own row.

How many dots

Dots in the character Characters Dots

Set Strokes

Where in the order

k/n Dots

First stroke, last stroke, middle

Place Dots

Runs of consecutive dots

Run length Runs Dots

Before or after the nearest other stroke

Relation Dots

Characters with the most dots

Character Strokes Dots Dot strokes Run lengths Before After

Plates

KanjiVG · CC BY-SA 3.0

What this shows

Stroke diagrams: KanjiVG, Ulrich Apel et al., CC BY-SA 3.0, from commit 70a0b7ae0c18ceb5cb358274b029cce0234a43bc of github.com/KanjiVG/kanjivg. The plate files are unmodified copies in site/assets/kanjivg/. Jōyō index: the list used on the Gallery.