These are frequencies in one KanjiVG snapshot. They are not a rule that a stroke of a given type must be written first, last, or in a given third of the character.

Cinnabar and indigo mark the strokes named in that plate’s caption. A plate with one mark uses cinnabar. Click a plate to replay. With reduced motion the finished character stays still, and the marks stay.

On this page

What is counted

The string
The kvg:type of a stroke path, copied as the file writes it. A path counts when its id contains -sN. The main file kanji/<5-hex>.svg is read. A variant file, whose name has a hyphen and a suffix, is not.
First
The stroke’s index is 1.
Final
The stroke’s index is N, the number of strokes in that character. This is how often the type is the final stroke.
Early, middle, late
For a character of two or more strokes, the place of index i is (i − 1) / (N − 1), from the first stroke at 0 to the last stroke at 1. Early is below one third. Middle is from one third up to but not including two thirds. Late is from two thirds on. The first stroke is early. The final stroke is late. A stroke is in one of the three.
One stroke
The character has only that stroke. It is counted as first and as final, and it is not placed in a third. In this snapshot the two are 一 (㇐) and 乙 (㇈).
Family
A string with a slash is a compound. A string with no slash is filed by its stroke character. ㇐, ㇑, ㇒, ㇏, and ㇔ are the five basic families, and a letter on that character stays in the family. Otherwise the string is a hook when the Unicode name’s last token contains G, a bend when that token contains Z or W, and another single shape when it contains neither. A slash stays a compound even if one side is a hook.

木 writes four of the five plain strings. There is no letter and no slash.

Letters and slashes

KanjiVG writes a suffix by placing a letter against the stroke character: ㇐a, not a separate word. A slash is two readings of one stroke, kept as one string: ㇐b/㇔ is not added into ㇐b and not added into ㇔. The inventory counts the string as written.

The column “letters removed” deletes a trailing run of those letters from each side of a slash and leaves the slash in place. ㇐a is shown beside ㇐. ㇖b/㇆ is shown beside ㇖/㇆. The slash is not dropped, and the left-hand piece is not put in place of the whole string. Where the two forms are the same, the column is a dash.

上 has all three habits in three strokes. Stroke 1 is ㇑a. Stroke 2 is ㇐b/㇔. Stroke 3 is plain ㇐. Cinnabar is stroke 1. Indigo is stroke 2.

The inventory

By family

One row is one family. Strings is how many distinct written forms fall in it. Strokes is the sum of those forms. Share is that sum divided by every stroke in the list. The last row is the total.

Family Strings Strokes Share

Every string

One row is one written string. Rows run by family, then by the count, then by the string. Share is of every stroke. Letters removed is the form defined above.

Type Strokes Share Family Letters removed

Where in the order

The same strings, in the same order. Each cell under First, Final, Early, Middle, Late, and One stroke is a count, and under it the percent of that string’s strokes. Early, middle, late, and one stroke add up to the stroke count. First and final do not: a middle stroke is neither, and a one-stroke character is both.

Type Strokes First Final Early Middle Late One stroke

大 is one character in which plain ㇐ is stroke 1 and plain ㇏ is stroke 3, the final stroke. Cinnabar is stroke 1. Indigo is stroke 3. The table is the frequency. This plate is one file.

Almost only last

辺 writes ㇏a as stroke 5 of 5. Cinnabar is that stroke.

Never last

土 writes ㇑a as stroke 2 of 3. The final stroke is plain ㇐. Cinnabar is stroke 2.

Neither end

日 writes ㇕a as stroke 2 of 4. 口 writes ㇕b as stroke 2 of 3. Cinnabar on this plate is stroke 2 of 日.

Late, and not last

心 writes ㇔a as stroke 3 and plain ㇔ as stroke 4, the final stroke. Cinnabar is stroke 3. Indigo is stroke 4.

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/. Stroke-type strings are the kvg:type values in those files. Jōyō index: the list used on the Gallery. The stroke-direction atlas reads the same strings and asks which way the chord runs.