Charts /
CH-SPA-04
CH-SPA-04 . family SPA
DOT DENSITY
one dot per declared count at supplied coordinates. Needs: base polygons + dot coordinates; each dot a declared unit.
densitydistributionpattern
Use when
- spatial concentration where the cluster shape matters
- showing crowding that region averages would hide
Do not use when
- few items (plot them as labeled symbols)
- precise counts (dots are for pattern, the key gives scale)
See instead
Alternatives
- CH-SPA-01 (rates by region)
- CH-COR-05 (abstract xy density)
Rules
- the dot key (one dot = N) is printed; dots are pattern, not lookup
- dot placement is supplied data, never renderer randomness
Never do this
- renderer-side random scatter (breaks determinism)
- reading individual dots as items
- undeclared dot value
QA before delivering
- dot key printed
- supplied coordinates only
- source present
Data shape
| title | action title naming the cluster |
| source | bottom-left always |
| unit | thing counted |
| unit_value | count per dot, declared |
| note | coordinates are author-supplied unit-square (0-100) geometry; the renderer scales, the author owns projection and aspect |
| regions | base polygons |
| dots | [[x,y]..] |
Sample data (golden)
{
"title": "Workforce crowds the central and south camps",
"eyebrow": "WORKFORCE DISTRIBUTION",
"source": "Source: sample dataset v1, 2026-07-12",
"unit": "workers",
"unit_value": 25,
"regions": [
{
"name": "North",
"label_at": [
32,
17
],
"polygon": [
[
10,
5
],
[
55,
2
],
[
60,
25
],
[
35,
32
],
[
8,
28
]
]
},
{
"name": "West",
"label_at": [
19,
45
],
"polygon": [
[
8,
28
],
[
35,
32
],
[
30,
60
],
[
5,
58
]
]
},
{
"name": "Central",
"label_at": [
48,
42
],
"polygon": [
[
35,
32
],
[
60,
25
],
[
68,
50
],
[
30,
60
]
]
},
{
"name": "East",
"label_at": [
78,
38
],
"polygon": [
[
60,
25
],
[
92,
20
],
[
95,
55
],
[
68,
50
]
]
},
{
"name": "South",
"label_at": [
58,
72
],
"polygon": [
[
30,
60
],
[
68,
50
],
[
95,
55
],
[
90,
90
],
[
25,
88
]
]
}
],
"dots": [
[
38.2,
44.6
],
[
56.0,
38.4
],
[
37.4,
41.5
],
[
51.8,
49.7
],
[
38.3,
32.9
],
[
53.6,
45.3
],
[
60.3,
48.9
],
[
47.2,
40.1
],
[
68.6,
40.0
],
[
41.7,
34.0
],
[
48.8,
43.0
],
[
45.2,
41.6
],
[
50.2,
46.8
],
[
56.8,
43.5
],
[
33.7,
46.9
],
[
36.6,
40.8
],
[
36.2,
42.0
],
[
41.8,
43.5
],
[
74.4,
41.7
],
[
54.7,
32.7
],
[
45.7,
46.6
],
[
47.3,
44.6
],
[
48.8,
35.0
],
[
52.5,
36.3
],
[
63.0,
38.5
],
[
53.5,
42.0
],
[
55.6,
37.8
],
[
56.0,
41.1
],
[
58.1,
46.4
],
[
49.1,
36.5
],
[
54.1,
45.3
],
[
61.1,
39.4
],
[
52.4,
45.6
],
[
50.3,
43.5
],
[
49.5,
37.8
],
[
39.9,
39.2
],
[
52.7,
52.6
],
[
55.8,
49.4
],
[
54.2,
46.9
],
[
49.5,
47.4
],
[
62.2,
39.7
],
[
42.4,
55.7
],
[
50.0,
48.8
],
[
55.0,
34.0
],
[
67.5,
54.4
],
[
49.4,
47.3
],
[
49.0,
35.8
],
[
47.1,
44.6
],
[
56.9,
47.0
],
[
48.5,
51.5
],
[
41.9,
47.6
],
[
56.9,
40.0
],
[
33.7,
35.7
],
[
49.9,
45.7
],
[
60.4,
35.0
],
[
48.0,
46.5
],
[
46.7,
25.4
],
[
54.5,
58.2
],
[
56.0,
35.6
],
[
44.7,
43.6
],
[
67.9,
46.3
],
[
48.9,
52.9
],
[
47.3,
55.0
],
[
42.5,
38.7
],
[
53.8,
52.0
],
[
53.2,
44.1
],
[
33.4,
37.0
],
[
43.1,
38.3
],
[
52.7,
39.7
],
[
54.3,
42.6
],
[
45.3,
42.8
],
[
51.4,
48.0
],
[
44.2,
40.4
],
[
37.1,
53.2
],
[
59.6,
40.7
],
[
44.2,
33.3
],
[
49.4,
43.4
],
[
65.5,
43.7
],
[
41.8,
24.9
],
[
59.3,
43.3
],
[
35.1,
43.3
],
[
35.1,
66.4
],
[
57.0,
46.0
],
[
46.6,
27.0
],
[
47.0,
31.1
],
[
52.8,
27.0
],
[
40.7,
50.5
],
[
61.2,
33.7
],
[
35.7,
48.2
],
[
54.8,
35.1
],
[
51.1,
67.1
],
[
46.1,
67.2
],
[
70.5,
76.8
],
[
78.6,
71.4
],
[
56.6,
65.1
],
[
56.8,
62.8
],
[
40.2,
76.9
],
[
72.4,
77.9
],
[
71.3,
73.8
],
[
50.8,
72.6
],
[
54.3,
64.2
],
[
41.1,
61.6
],
[
57.9,
73.1
],
[
53.3,
82.0
],
[
59.8,
76.1
],
[
70.2,
66.3
],
[
38.3,
77.3
],
[
51.1,
81.2
],
[
61.4,
79.0
],
[
65.6,
57.4
],
[
65.2,
67.3
],
[
50.4,
69.0
],
[
65.7,
78.2
],
[
68.1,
60.4
],
[
52.1,
55.4
],
[
57.0,
76.2
],
[
50.4,
73.7
],
[
60.3,
79.1
],
[
49.8,
66.2
],
[
50.4,
84.3
],
[
68.9,
71.1
],
[
60.3,
72.8
],
[
60.0,
70.5
],
[
54.7,
63.2
],
[
51.6,
83.6
],
[
63.4,
72.5
],
[
55.9,
72.4
],
[
61.5,
67.5
],
[
60.0,
73.7
],
[
50.5,
66.5
],
[
48.0,
64.6
],
[
66.9,
55.5
],
[
55.3,
67.7
],
[
51.8,
72.7
],
[
69.3,
72.5
],
[
56.6,
67.7
],
[
56.7,
78.4
],
[
54.1,
64.0
],
[
45.4,
64.3
],
[
44.1,
79.7
],
[
61.6,
70.3
],
[
72.6,
67.4
],
[
65.5,
77.6
],
[
42.5,
61.1
],
[
48.7,
78.3
],
[
71.0,
63.4
],
[
68.5,
69.3
],
[
54.1,
68.1
],
[
54.8,
59.3
],
[
48.0,
63.4
],
[
62.9,
86.6
],
[
85.3,
69.6
],
[
40.8,
69.2
],
[
48.6,
85.9
],
[
63.7,
66.9
],
[
67.4,
75.8
],
[
41.7,
68.3
],
[
55.6,
72.1
],
[
59.3,
69.6
],
[
59.9,
67.9
],
[
49.0,
82.6
],
[
61.6,
75.1
],
[
42.1,
70.8
],
[
66.2,
63.0
],
[
69.0,
69.3
],
[
62.0,
71.1
],
[
60.2,
80.4
],
[
54.0,
83.0
],
[
50.2,
65.5
],
[
65.1,
64.5
],
[
75.8,
43.4
],
[
85.3,
27.4
],
[
81.0,
49.3
],
[
85.2,
36.6
],
[
74.4,
36.2
],
[
71.1,
36.4
],
[
76.9,
37.1
],
[
85.1,
36.6
],
[
69.3,
44.3
],
[
71.6,
35.3
],
[
77.2,
35.9
],
[
72.0,
36.5
],
[
91.1,
34.4
],
[
77.2,
44.7
],
[
82.5,
42.6
],
[
83.2,
26.2
],
[
72.8,
38.8
],
[
81.0,
45.8
],
[
80.8,
36.6
],
[
78.2,
36.7
],
[
79.5,
42.0
],
[
76.0,
33.1
],
[
72.9,
44.6
],
[
85.7,
44.0
],
[
83.1,
43.0
],
[
78.0,
42.0
],
[
71.7,
36.8
],
[
73.6,
42.4
],
[
74.5,
37.4
],
[
80.4,
46.1
],
[
73.2,
32.4
],
[
82.9,
31.4
],
[
80.7,
34.6
],
[
77.4,
27.1
],
[
82.3,
35.0
],
[
72.6,
50.5
],
[
82.3,
59.1
],
[
80.4,
35.9
],
[
78.6,
47.6
],
[
77.8,
40.7
],
[
21.6,
40.4
],
[
19.6,
42.5
],
[
12.8,
49.4
],
[
22.3,
45.4
],
[
14.5,
35.0
],
[
21.4,
44.5
],
[
10.6,
44.7
],
[
11.4,
44.9
],
[
19.7,
46.8
],
[
20.1,
45.9
],
[
13.3,
43.1
],
[
16.4,
43.8
],
[
20.4,
48.1
],
[
27.2,
32.2
],
[
21.0,
44.0
],
[
30.4,
49.7
],
[
10.7,
47.0
],
[
16.4,
50.0
],
[
13.7,
44.5
],
[
18.3,
44.5
],
[
28.5,
9.6
],
[
34.8,
21.0
],
[
31.6,
12.9
],
[
33.2,
19.3
],
[
30.9,
16.9
],
[
40.5,
12.5
],
[
28.7,
9.4
],
[
27.8,
14.0
],
[
26.2,
14.2
],
[
42.8,
16.2
]
]
}