Skip to content

Commit bc2a0f2

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

2 files changed

Lines changed: 72 additions & 71 deletions

File tree

plots/column-stratigraphic/implementations/bokeh.py

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

77
from bokeh.io import export_png

plots/column-stratigraphic/metadata/bokeh.yaml

Lines changed: 70 additions & 69 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:07:08Z'
4+
updated: '2026-03-15T23:14:59Z'
55
generated_by: claude-opus-4-5-20251101
66
workflow_run: 23121198781
77
issue: 4573
@@ -10,106 +10,107 @@ 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: 85
13+
quality_score: 88
1414
review:
1515
strengths:
16-
- K-Pg boundary annotation with red dashed line adds geological storytelling and
17-
visual interest
18-
- Earth-tone color palette with matching hatch patterns is contextually appropriate
19-
for geological data
20-
- 'Good use of Bokeh-specific features: HoverTool with rich tooltips, hatch patterns,
21-
dual HTML+PNG export'
22-
- Age brackets on the left side provide clear temporal organization
23-
- Perfect spec compliance with all required features implemented
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
2424
weaknesses:
25-
- 'Canvas utilization is poor: significant empty space between formation labels
26-
and legend; column occupies only ~35% of width'
27-
- Legend is isolated in the far top-right, disconnected from the data
28-
- 'Color accessibility could improve: sandstone/siltstone distinction is subtle
29-
for colorblind users'
30-
image_description: 'The plot displays a vertical stratigraphic column showing 10
31-
geological layers from 0m to 200m depth (increasing downward). Each layer is rendered
32-
as a rectangular block with a distinct fill color and hatch pattern: sandstone
33-
in wheat with dot pattern, shale in gray with horizontal dashes, limestone in
34-
light blue with cross-hatch, siltstone in dark brown with diagonal lines, and
35-
conglomerate in orange with circle pattern. Formation names (Dakota Fm, Mancos
36-
Fm, Niobrara Fm, Pierre Fm, Fox Hills Fm, Dawson Fm, Green River Fm, Leadville
37-
Fm, Wasatch Fm, Uinta Fm) are labeled to the right of the column. Age labels (Late
38-
Cretaceous, Paleocene, Eocene) appear on the left with bracket lines grouping
39-
the relevant layers. A red dashed horizontal line marks the K-Pg Boundary (~66
40-
Ma) at 88m depth. The y-axis shows "Depth (m)" and a lithology legend titled "Lithology"
41-
is in the top-right corner. Title reads "column-stratigraphic · bokeh · pyplots.ai".
42-
Background is off-white (#FAFAFA).'
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
30+
image_description: 'The plot displays a vertical stratigraphic column spanning 0–200m
31+
depth (increasing downward). Ten geological layers are rendered as wide rectangular
32+
blocks, each filled with a distinct color and hatch pattern: Sandstone (warm wheat
33+
with dot pattern), Shale (gray with horizontal dashes), Limestone (light blue
34+
with plus/cross pattern), Siltstone (olive green with diagonal hatching), and
35+
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)".'
4343
criteria_checklist:
4444
visual_quality:
45-
score: 26
45+
score: 27
4646
max: 30
4747
items:
4848
- id: VQ-01
4949
name: Text Legibility
5050
score: 7
5151
max: 8
5252
passed: true
53-
comment: All font sizes explicitly set (36pt title, 28pt axis label, 22pt
54-
ticks, 18pt labels, 20pt legend). K-Pg boundary label at 16pt slightly small.
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.
5556
- id: VQ-02
5657
name: No Overlap
5758
score: 6
5859
max: 6
5960
passed: true
60-
comment: No overlapping text elements; all labels clearly separated.
61+
comment: No overlapping text. Formation labels, age labels, and depth marks
62+
all well-separated.
6163
- id: VQ-03
6264
name: Element Visibility
6365
score: 6
6466
max: 6
6567
passed: true
66-
comment: All layer rectangles clearly visible with distinct colors and hatch
68+
comment: All rectangular layers clearly visible with distinct colors and hatch
6769
patterns.
6870
- id: VQ-04
6971
name: Color Accessibility
70-
score: 3
72+
score: 4
7173
max: 4
7274
passed: true
73-
comment: Five distinct colors generally distinguishable but sandstone/siltstone
74-
may be hard for colorblind users.
75+
comment: 'Colorblind-safe palette: wheat, gray, blue, olive green, orange.'
7576
- id: VQ-05
7677
name: Layout & Canvas
7778
score: 2
7879
max: 4
79-
passed: true
80-
comment: Column occupies ~35% of canvas width; significant empty space; legend
81-
isolated in far top-right.
80+
passed: false
81+
comment: Significant horizontal space wasted between formation labels and
82+
legend. Column is narrow relative to canvas width.
8283
- id: VQ-06
8384
name: Axis Labels & Title
8485
score: 2
8586
max: 2
8687
passed: true
87-
comment: Y-axis labeled Depth (m) with units; x-axis correctly hidden.
88+
comment: Y-axis labeled Depth (m) with units. X-axis appropriately hidden.
8889
design_excellence:
89-
score: 13
90+
score: 14
9091
max: 20
9192
items:
9293
- id: DE-01
9394
name: Aesthetic Sophistication
9495
score: 5
9596
max: 8
9697
passed: true
97-
comment: Thoughtful earth-tone palette matching geological context. Custom
98-
hatch patterns. Above defaults but not publication-quality.
98+
comment: Earth-tone palette is geology-appropriate. Good typography hierarchy.
99+
Above defaults but not publication-grade.
99100
- id: DE-02
100101
name: Visual Refinement
101102
score: 4
102103
max: 6
103104
passed: true
104-
comment: 'X-grid removed, y-grid subtle (alpha=0.15, dashed), outline removed,
105-
background #FAFAFA.'
105+
comment: Hidden x-axis, subtle grid (alpha 0.12, dashed), removed outline,
106+
custom background. Good refinement.
106107
- id: DE-03
107108
name: Data Storytelling
108-
score: 4
109+
score: 5
109110
max: 6
110111
passed: true
111-
comment: K-Pg boundary creates geological narrative. Age brackets organize
112-
temporal progression.
112+
comment: K-Pg boundary creates clear focal point. Age brackets organize geological
113+
timeline. Real formation names add context.
113114
spec_compliance:
114115
score: 15
115116
max: 15
@@ -119,52 +120,51 @@ review:
119120
score: 5
120121
max: 5
121122
passed: true
122-
comment: Correct vertical stratigraphic column with stacked rectangular layers.
123+
comment: Correct stratigraphic column with stacked rectangular layers and
124+
lithology patterns.
123125
- id: SC-02
124126
name: Required Features
125127
score: 4
126128
max: 4
127129
passed: true
128-
comment: 'All spec features present: lithology patterns, formation names,
129-
age labels, depth scale, layer boundaries.'
130+
comment: 'All spec features present: 5 lithology patterns, depth increasing
131+
downward, formation names, age labels, depth scale.'
130132
- id: SC-03
131133
name: Data Mapping
132134
score: 3
133135
max: 3
134136
passed: true
135-
comment: Y-axis represents depth correctly, layers at correct intervals.
137+
comment: Depth correctly mapped to y-axis, layers stacked without gaps.
136138
- id: SC-04
137139
name: Title & Legend
138140
score: 3
139141
max: 3
140142
passed: true
141-
comment: Title follows exact format. Legend titled Lithology with correct
142-
labels.
143+
comment: Title format correct. Legend titled Lithology with all 5 rock types.
143144
data_quality:
144-
score: 13
145+
score: 14
145146
max: 15
146147
items:
147148
- id: DQ-01
148149
name: Feature Coverage
149-
score: 5
150+
score: 6
150151
max: 6
151152
passed: true
152-
comment: Shows 5 lithology types, varying thicknesses, three geological periods,
153-
K-Pg boundary event.
153+
comment: Shows 5 distinct lithologies, 10 layers, varying thicknesses, 3 geological
154+
periods, K-Pg boundary.
154155
- id: DQ-02
155156
name: Realistic Context
156157
score: 4
157158
max: 5
158159
passed: true
159-
comment: Real formation names from Western Interior. Some stratigraphic ordering
160-
geologically questionable.
160+
comment: Real Western US formation names and geological ages. Minor anachronism
161+
with Leadville Fm age.
161162
- id: DQ-03
162163
name: Appropriate Scale
163164
score: 4
164165
max: 4
165166
passed: true
166-
comment: Depths 0-200m realistic for borehole/outcrop. Layer thicknesses geologically
167-
plausible.
167+
comment: Depths 0-200m and thicknesses 8-28m are geologically plausible.
168168
code_quality:
169169
score: 10
170170
max: 10
@@ -174,13 +174,14 @@ review:
174174
score: 3
175175
max: 3
176176
passed: true
177-
comment: 'Clean linear flow: imports, data, plot, styling, save.'
177+
comment: 'Clean linear flow: data, plot, annotations, save. No functions or
178+
classes.'
178179
- id: CQ-02
179180
name: Reproducibility
180181
score: 2
181182
max: 2
182183
passed: true
183-
comment: Fully deterministic with hardcoded data.
184+
comment: All data deterministic (hardcoded layer definitions).
184185
- id: CQ-03
185186
name: Clean Imports
186187
score: 2
@@ -192,7 +193,7 @@ review:
192193
score: 2
193194
max: 2
194195
passed: true
195-
comment: Appropriate use of loops and dictionary-based style mapping.
196+
comment: Clean, well-organized code with appropriate loops. No fake functionality.
196197
- id: CQ-05
197198
name: Output & API
198199
score: 1
@@ -208,15 +209,15 @@ review:
208209
score: 4
209210
max: 5
210211
passed: true
211-
comment: Good use of ColumnDataSource, figure().rect(), Label/Legend/Span
212-
models.
212+
comment: Uses ColumnDataSource, Range1d, Label, Legend/LegendItem, Span
213+
idiomatic Bokeh patterns.
213214
- id: LM-02
214215
name: Distinctive Features
215216
score: 4
216217
max: 5
217218
passed: true
218-
comment: HoverTool with rich tooltips, hatch_pattern, dual HTML+PNG export
219-
are distinctive Bokeh features.
219+
comment: HoverTool with rich tooltips, hatch patterns, Span model, dual PNG/HTML
220+
export — Bokeh-specific features.
220221
verdict: REJECTED
221222
impl_tags:
222223
dependencies: []

0 commit comments

Comments
 (0)