Skip to content

Commit 109362e

Browse files
chore(plotnine): update quality score 81 and review feedback for column-stratigraphic
1 parent 292527f commit 109362e

2 files changed

Lines changed: 210 additions & 10 deletions

File tree

plots/column-stratigraphic/implementations/plotnine.py

Lines changed: 3 additions & 3 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
3-
Library: plotnine | Python 3.13
4-
Quality: pending | Created: 2026-03-15
3+
Library: plotnine 0.15.3 | Python 3.14.3
4+
Quality: 81/100 | Created: 2026-03-15
55
"""
66

77
import numpy as np
Lines changed: 207 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
# Per-library metadata for plotnine implementation of column-stratigraphic
2-
# Auto-generated by impl-generate.yml
3-
41
library: plotnine
52
specification_id: column-stratigraphic
63
created: '2026-03-15T22:55:35Z'
7-
updated: '2026-03-15T22:55:35Z'
4+
updated: '2026-03-15T22:59:31Z'
85
generated_by: claude-opus-4-5-20251101
96
workflow_run: 23121198926
107
issue: 4573
@@ -13,7 +10,210 @@ library_version: 0.15.3
1310
preview_url: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/plotnine/plot.png
1411
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/plotnine/plot_thumb.png
1512
preview_html: null
16-
quality_score: null
13+
quality_score: 81
1714
review:
18-
strengths: []
19-
weaknesses: []
15+
strengths:
16+
- Excellent spec compliance with all required features and correct layout conventions
17+
- Realistic geological data using actual Western US formation names
18+
- Good variety of lithology patterns approximating standard geological symbols
19+
- Well-structured plotnine layer composition with clean theme customization
20+
weaknesses:
21+
- Formation and age label font sizes too small (10-11pt)
22+
- Siltstone pattern too sparse and hard to distinguish
23+
- Color contrast between siltstone and shale insufficient
24+
- No visual emphasis or focal point for data storytelling
25+
- Title at 22pt slightly under 24pt guideline
26+
image_description: 'The plot displays a vertical stratigraphic column spanning 0-180m
27+
depth with 10 geological layers. Each layer is filled with a distinct muted color
28+
and overlaid with lithology-specific patterns: sandstone (yellow with stipple
29+
dots), shale (gray with horizontal dashes), limestone (blue with brick pattern),
30+
siltstone (light blue-gray with short random dashes), conglomerate (salmon with
31+
open circles), and mudstone (brown with dense horizontal dashes). Age labels (Late
32+
Cretaceous through Triassic) appear on the left side, and formation names (Frontier
33+
Fm, Madison Fm, Kootenai Fm, Morrison Fm, Sundance Fm) in italics on the right.
34+
The y-axis shows "Depth (m)" increasing downward with ticks every 20m. A horizontal
35+
legend at the bottom identifies all 6 lithology types. The title reads "column-stratigraphic
36+
· plotnine · pyplots.ai" in bold at the top. Background is white with subtle horizontal
37+
grid lines.'
38+
criteria_checklist:
39+
visual_quality:
40+
score: 25
41+
max: 30
42+
items:
43+
- id: VQ-01
44+
name: Text Legibility
45+
score: 6
46+
max: 8
47+
passed: true
48+
comment: Font sizes explicitly set but title slightly under 24pt; formation/age
49+
labels (10-11pt) are small
50+
- id: VQ-02
51+
name: No Overlap
52+
score: 6
53+
max: 6
54+
passed: true
55+
comment: All text well-spaced with no collisions
56+
- id: VQ-03
57+
name: Element Visibility
58+
score: 5
59+
max: 6
60+
passed: true
61+
comment: Most patterns visible; siltstone pattern sparse and hard to distinguish
62+
- id: VQ-04
63+
name: Color Accessibility
64+
score: 3
65+
max: 4
66+
passed: true
67+
comment: Generally distinguishable but siltstone and shale too similar in
68+
lightness
69+
- id: VQ-05
70+
name: Layout & Canvas
71+
score: 3
72+
max: 4
73+
passed: true
74+
comment: Good vertical utilization; some horizontal space underutilized
75+
- id: VQ-06
76+
name: Axis Labels & Title
77+
score: 2
78+
max: 2
79+
passed: true
80+
comment: Y-axis shows Depth (m) with units; x-axis appropriately blank
81+
design_excellence:
82+
score: 12
83+
max: 20
84+
items:
85+
- id: DE-01
86+
name: Aesthetic Sophistication
87+
score: 5
88+
max: 8
89+
passed: true
90+
comment: Custom geological palette with muted tones, pattern overlays, italic
91+
labels — above defaults but not publication-level
92+
- id: DE-02
93+
name: Visual Refinement
94+
score: 4
95+
max: 6
96+
passed: true
97+
comment: theme_minimal, removed x-axis, subtle grid — good refinement
98+
- id: DE-03
99+
name: Data Storytelling
100+
score: 3
101+
max: 6
102+
passed: true
103+
comment: Natural geological narrative but no focal point or emphasis
104+
spec_compliance:
105+
score: 15
106+
max: 15
107+
items:
108+
- id: SC-01
109+
name: Plot Type
110+
score: 5
111+
max: 5
112+
passed: true
113+
comment: Correct vertical stratigraphic column with stacked layers
114+
- id: SC-02
115+
name: Required Features
116+
score: 4
117+
max: 4
118+
passed: true
119+
comment: 'All required features present: 6 lithology patterns, formation/age
120+
labels, depth scale, boundaries'
121+
- id: SC-03
122+
name: Data Mapping
123+
score: 3
124+
max: 3
125+
passed: true
126+
comment: Depth correctly mapped increasing downward
127+
- id: SC-04
128+
name: Title & Legend
129+
score: 3
130+
max: 3
131+
passed: true
132+
comment: Title format correct, legend labels match data
133+
data_quality:
134+
score: 14
135+
max: 15
136+
items:
137+
- id: DQ-01
138+
name: Feature Coverage
139+
score: 5
140+
max: 6
141+
passed: true
142+
comment: 6 lithology types, varying thicknesses, 5 formations and ages; could
143+
include unconformity
144+
- id: DQ-02
145+
name: Realistic Context
146+
score: 5
147+
max: 5
148+
passed: true
149+
comment: Real Western US formation names with plausible age assignments
150+
- id: DQ-03
151+
name: Appropriate Scale
152+
score: 4
153+
max: 4
154+
passed: true
155+
comment: 0-180m depth with 12-25m thicknesses is realistic
156+
code_quality:
157+
score: 9
158+
max: 10
159+
items:
160+
- id: CQ-01
161+
name: KISS Structure
162+
score: 3
163+
max: 3
164+
passed: true
165+
comment: Linear flow, no functions/classes
166+
- id: CQ-02
167+
name: Reproducibility
168+
score: 2
169+
max: 2
170+
passed: true
171+
comment: np.random.seed(42) set
172+
- id: CQ-03
173+
name: Clean Imports
174+
score: 2
175+
max: 2
176+
passed: true
177+
comment: All imports used
178+
- id: CQ-04
179+
name: Code Elegance
180+
score: 1
181+
max: 2
182+
passed: true
183+
comment: Pattern generation loop somewhat verbose but necessary
184+
- id: CQ-05
185+
name: Output & API
186+
score: 1
187+
max: 1
188+
passed: true
189+
comment: Saves as plot.png with dpi=300
190+
library_mastery:
191+
score: 6
192+
max: 10
193+
items:
194+
- id: LM-01
195+
name: Idiomatic Usage
196+
score: 4
197+
max: 5
198+
passed: true
199+
comment: Good grammar-of-graphics usage with layered geoms, scales, and themes
200+
- id: LM-02
201+
name: Distinctive Features
202+
score: 2
203+
max: 5
204+
passed: true
205+
comment: Layer composition is nice but complexity is in manual data prep,
206+
not plotnine features
207+
verdict: REJECTED
208+
impl_tags:
209+
dependencies: []
210+
techniques:
211+
- annotations
212+
- layer-composition
213+
patterns:
214+
- data-generation
215+
- iteration-over-groups
216+
dataprep: []
217+
styling:
218+
- alpha-blending
219+
- grid-styling

0 commit comments

Comments
 (0)