Skip to content

Commit 5de7727

Browse files
chore(bokeh): update quality score 89 and review feedback for column-stratigraphic
1 parent bc2a0f2 commit 5de7727

2 files changed

Lines changed: 77 additions & 69 deletions

File tree

plots/column-stratigraphic/implementations/bokeh.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
""" pyplots.ai
22
column-stratigraphic: Stratigraphic Column with Lithology Patterns
33
Library: bokeh 3.9.0 | Python 3.14.3
4-
Quality: 88/100 | Created: 2026-03-15
4+
Quality: 89/100 | Created: 2026-03-15
55
"""
66

77
from bokeh.io import export_png

plots/column-stratigraphic/metadata/bokeh.yaml

Lines changed: 76 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library: bokeh
22
specification_id: column-stratigraphic
33
created: '2026-03-15T22:55:12Z'
4-
updated: '2026-03-15T23:14:59Z'
4+
updated: '2026-03-15T23:23:49Z'
55
generated_by: claude-opus-4-5-20251101
66
workflow_run: 23121198781
77
issue: 4573
@@ -10,107 +10,113 @@ library_version: 3.9.0
1010
preview_url: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/bokeh/plot.png
1111
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/bokeh/plot_thumb.png
1212
preview_html: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/bokeh/plot.html
13-
quality_score: 88
13+
quality_score: 89
1414
review:
1515
strengths:
16-
- Excellent spec compliance — all required features faithfully implemented with
17-
5 distinct lithology patterns and proper geological conventions
18-
- K-Pg boundary annotation adds strong data storytelling with red dashed line and
19-
bold label
20-
- 'Good use of Bokeh-specific features: HoverTool tooltips, hatch patterns, Span,
21-
dual PNG/HTML export'
22-
- Clean, well-organized code with good typography hierarchy
23-
- Colorblind-safe, geology-appropriate earth-tone palette
16+
- Excellent visual design with domain-appropriate color palette and redundant hatch
17+
pattern encoding for accessibility
18+
- Strong data storytelling through the K-Pg boundary focal point and age bracket
19+
grouping
20+
- Full spec compliance with all required features implemented
21+
- Good use of Bokeh-specific features (hatch patterns, HoverTool, Span, dual HTML/PNG
22+
output)
23+
- Clean typography hierarchy with 4 distinct size levels
24+
- Professional visual refinement (subtle grid, removed outline, hidden x-axis)
2425
weaknesses:
25-
- Horizontal canvas utilization could be improved — significant empty space between
26-
formation labels and legend
27-
- Boundary depth labels (13pt) are noticeably smaller than other text elements
28-
- Hatch patterns use Bokeh built-in defaults rather than closer approximations of
29-
FGDC geological symbols
26+
- 'Geological age ordering is reversed: Eocene (younger) appears below Late Cretaceous
27+
(older) in the depth column, and Leadville Fm is assigned incorrect age'
28+
- Boundary depth labels at 13pt are noticeably smaller than other text elements
29+
- Some horizontal space wasted to the right of formation labels
3030
image_description: 'The plot displays a vertical stratigraphic column spanning 0–200m
3131
depth (increasing downward). Ten geological layers are rendered as wide rectangular
3232
blocks, each filled with a distinct color and hatch pattern: Sandstone (warm wheat
3333
with dot pattern), Shale (gray with horizontal dashes), Limestone (light blue
34-
with plus/cross pattern), Siltstone (olive green with diagonal hatching), and
34+
with cross/plus pattern), Siltstone (olive green with diagonal hatching), and
3535
Conglomerate (orange with circle pattern). A prominent red dashed line marks the
36-
K-Pg Boundary (~66 Ma) at 88m depth with a bold red label. Formation names (Dakota
37-
Fm, Mancos Fm, Niobrara Fm, Pierre Fm, Fox Hills Fm, Dawson Fm, Green River Fm,
38-
Leadville Fm, Wasatch Fm, Uinta Fm) are labeled on the right. Age brackets (Late
39-
Cretaceous, Paleocene, Eocene) with bracket lines appear on the left. Small depth
40-
labels mark each layer boundary. The title reads "column-stratigraphic · bokeh
41-
· pyplots.ai" in the upper left. A lithology legend with all 5 rock types sits
42-
in the upper right. The y-axis is labeled "Depth (m)".'
36+
K-Pg Boundary (~66 Ma) at 88m depth with a bold red label on a white background.
37+
Formation names (Dakota Fm, Mancos Fm, Niobrara Fm, Pierre Fm, Fox Hills Fm, Dawson
38+
Fm, Green River Fm, Leadville Fm, Wasatch Fm, Uinta Fm) are labeled in bold on
39+
the right side. Age brackets with vertical bracket lines (Late Cretaceous, Paleocene,
40+
Eocene) appear on the left in italic. Small gray depth labels mark each layer
41+
boundary. The title reads "column-stratigraphic · bokeh · pyplots.ai" in the upper
42+
left. A lithology legend titled "Lithology" with all 5 rock types sits in the
43+
upper right on a cream background. The y-axis is labeled "Depth (m)" in bold.
44+
The background is a warm off-white, grid is very subtle dashed lines, x-axis is
45+
hidden, and the outline is removed.'
4346
criteria_checklist:
4447
visual_quality:
45-
score: 27
48+
score: 28
4649
max: 30
4750
items:
4851
- id: VQ-01
4952
name: Text Legibility
5053
score: 7
5154
max: 8
5255
passed: true
53-
comment: All font sizes explicitly set (title 36pt, axis label 28pt, ticks
54-
22pt, formation 19pt, age 19pt). Boundary depth labels at 13pt are readable
55-
but noticeably smaller.
56+
comment: All font sizes explicitly set (title 36pt, axis 28pt, ticks 22pt,
57+
labels 19pt, legend 20-22pt). Boundary depth labels at 13pt are smaller
58+
but readable.
5659
- id: VQ-02
5760
name: No Overlap
5861
score: 6
5962
max: 6
6063
passed: true
61-
comment: No overlapping text. Formation labels, age labels, and depth marks
64+
comment: No overlapping text. Formation labels, age brackets, depth marks
6265
all well-separated.
6366
- id: VQ-03
6467
name: Element Visibility
6568
score: 6
6669
max: 6
6770
passed: true
68-
comment: All rectangular layers clearly visible with distinct colors and hatch
69-
patterns.
71+
comment: All layers clearly visible with distinct colors and hatch patterns.
72+
Good 2px line widths on boundaries.
7073
- id: VQ-04
7174
name: Color Accessibility
7275
score: 4
7376
max: 4
7477
passed: true
75-
comment: 'Colorblind-safe palette: wheat, gray, blue, olive green, orange.'
78+
comment: Colorblind-safe palette (wheat, gray, blue, olive, orange) with redundant
79+
hatch pattern encoding.
7680
- id: VQ-05
7781
name: Layout & Canvas
78-
score: 2
82+
score: 3
7983
max: 4
80-
passed: false
81-
comment: Significant horizontal space wasted between formation labels and
82-
legend. Column is narrow relative to canvas width.
84+
passed: true
85+
comment: Good vertical utilization. Some wasted horizontal space between formation
86+
labels and legend.
8387
- id: VQ-06
8488
name: Axis Labels & Title
8589
score: 2
8690
max: 2
8791
passed: true
8892
comment: Y-axis labeled Depth (m) with units. X-axis appropriately hidden.
93+
Title follows convention.
8994
design_excellence:
90-
score: 14
95+
score: 16
9196
max: 20
9297
items:
9398
- id: DE-01
9499
name: Aesthetic Sophistication
95-
score: 5
100+
score: 6
96101
max: 8
97102
passed: true
98-
comment: Earth-tone palette is geology-appropriate. Good typography hierarchy.
99-
Above defaults but not publication-grade.
103+
comment: Custom domain-appropriate palette, intentional typography hierarchy,
104+
warm background, styled legend, K-Pg red accent. Above defaults but not
105+
publication-perfect.
100106
- id: DE-02
101107
name: Visual Refinement
102-
score: 4
108+
score: 5
103109
max: 6
104110
passed: true
105-
comment: Hidden x-axis, subtle grid (alpha 0.12, dashed), removed outline,
106-
custom background. Good refinement.
111+
comment: Outline removed, x-axis hidden, grid subtle (alpha 0.12 dashed),
112+
minor ticks removed, softened axis colors, generous padding.
107113
- id: DE-03
108114
name: Data Storytelling
109115
score: 5
110116
max: 6
111117
passed: true
112-
comment: K-Pg boundary creates clear focal point. Age brackets organize geological
113-
timeline. Real formation names add context.
118+
comment: K-Pg boundary creates strong focal point. Age brackets provide geological
119+
narrative. Depth ticks guide viewer through sequence.
114120
spec_compliance:
115121
score: 15
116122
max: 15
@@ -120,51 +126,53 @@ review:
120126
score: 5
121127
max: 5
122128
passed: true
123-
comment: Correct stratigraphic column with stacked rectangular layers and
124-
lithology patterns.
129+
comment: Correct vertical column with stacked rectangular blocks for geological
130+
layers.
125131
- id: SC-02
126132
name: Required Features
127133
score: 4
128134
max: 4
129135
passed: true
130-
comment: 'All spec features present: 5 lithology patterns, depth increasing
131-
downward, formation names, age labels, depth scale.'
136+
comment: 'All features: hatch patterns (5 types), formation names, age labels
137+
with brackets, depth scale, layer boundaries.'
132138
- id: SC-03
133139
name: Data Mapping
134140
score: 3
135141
max: 3
136142
passed: true
137-
comment: Depth correctly mapped to y-axis, layers stacked without gaps.
143+
comment: Depth increases downward as specified. All 10 layers from 0-200m
144+
displayed.
138145
- id: SC-04
139146
name: Title & Legend
140147
score: 3
141148
max: 3
142149
passed: true
143-
comment: Title format correct. Legend titled Lithology with all 5 rock types.
150+
comment: Title format correct. Legend with all 5 lithology types labeled.
144151
data_quality:
145-
score: 14
152+
score: 12
146153
max: 15
147154
items:
148155
- id: DQ-01
149156
name: Feature Coverage
150-
score: 6
157+
score: 5
151158
max: 6
152159
passed: true
153-
comment: Shows 5 distinct lithologies, 10 layers, varying thicknesses, 3 geological
154-
periods, K-Pg boundary.
160+
comment: 5 lithology types, 10 layers, varying thicknesses, 3 periods, K-Pg
161+
boundary. Missing unconformity (optional).
155162
- id: DQ-02
156163
name: Realistic Context
157-
score: 4
164+
score: 3
158165
max: 5
159-
passed: true
160-
comment: Real Western US formation names and geological ages. Minor anachronism
161-
with Leadville Fm age.
166+
passed: false
167+
comment: 'Real formation names but geological ages reversed: Eocene (younger)
168+
deeper than Cretaceous (older). Leadville Fm age incorrect.'
162169
- id: DQ-03
163170
name: Appropriate Scale
164171
score: 4
165172
max: 4
166173
passed: true
167-
comment: Depths 0-200m and thicknesses 8-28m are geologically plausible.
174+
comment: Layer thicknesses 8-28m realistic. Total 200m sensible for stratigraphic
175+
section.
168176
code_quality:
169177
score: 10
170178
max: 10
@@ -174,14 +182,14 @@ review:
174182
score: 3
175183
max: 3
176184
passed: true
177-
comment: 'Clean linear flow: data, plot, annotations, save. No functions or
178-
classes.'
185+
comment: 'Flat script: imports, data, styles, plot, annotations, save. No
186+
functions or classes.'
179187
- id: CQ-02
180188
name: Reproducibility
181189
score: 2
182190
max: 2
183191
passed: true
184-
comment: All data deterministic (hardcoded layer definitions).
192+
comment: Fully deterministic hardcoded data, no random elements.
185193
- id: CQ-03
186194
name: Clean Imports
187195
score: 2
@@ -193,13 +201,13 @@ review:
193201
score: 2
194202
max: 2
195203
passed: true
196-
comment: Clean, well-organized code with appropriate loops. No fake functionality.
204+
comment: Clean, well-organized code with logical sections. No fake UI elements.
197205
- id: CQ-05
198206
name: Output & API
199207
score: 1
200208
max: 1
201209
passed: true
202-
comment: Saves as plot.png via export_png and plot.html. Current Bokeh API.
210+
comment: Saves as plot.png and plot.html. Current Bokeh 3.9 API.
203211
library_mastery:
204212
score: 8
205213
max: 10
@@ -209,15 +217,15 @@ review:
209217
score: 4
210218
max: 5
211219
passed: true
212-
comment: Uses ColumnDataSource, Range1d, Label, Legend/LegendItem, Span —
213-
idiomatic Bokeh patterns.
220+
comment: Good use of ColumnDataSource, figure with Range1d, rect glyphs with
221+
hatch, Label/Span models, Legend with LegendItem, HoverTool.
214222
- id: LM-02
215223
name: Distinctive Features
216224
score: 4
217225
max: 5
218226
passed: true
219-
comment: HoverTool with rich tooltips, hatch patterns, Span model, dual PNG/HTML
220-
export — Bokeh-specific features.
227+
comment: 'Bokeh-specific: native hatch patterns, HoverTool with tooltips,
228+
Span model, dual PNG+HTML output, Legend model with custom styling.'
221229
verdict: REJECTED
222230
impl_tags:
223231
dependencies: []

0 commit comments

Comments
 (0)