Skip to content

Commit a607c9d

Browse files
chore(altair): update quality score 83 and review feedback for column-stratigraphic
1 parent 60a001c commit a607c9d

2 files changed

Lines changed: 73 additions & 67 deletions

File tree

plots/column-stratigraphic/implementations/altair.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: altair 6.0.0 | Python 3.14.3
4-
Quality: 79/100 | Created: 2026-03-15
4+
Quality: 83/100 | Created: 2026-03-15
55
"""
66

77
import altair as alt

plots/column-stratigraphic/metadata/altair.yaml

Lines changed: 71 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library: altair
22
specification_id: column-stratigraphic
33
created: '2026-03-15T22:59:28Z'
4-
updated: '2026-03-15T23:04:23Z'
4+
updated: '2026-03-15T23:12:21Z'
55
generated_by: claude-opus-4-5-20251101
66
workflow_run: 23121198787
77
issue: 4573
@@ -10,35 +10,37 @@ library_version: 6.0.0
1010
preview_url: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/altair/plot.png
1111
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/altair/plot_thumb.png
1212
preview_html: https://storage.googleapis.com/pyplots-images/plots/column-stratigraphic/altair/plot.html
13-
quality_score: 79
13+
quality_score: 83
1414
review:
1515
strengths:
16-
- Excellent realistic geological data using real Grand Canyon formations and correct
17-
ages
18-
- Clean code structure with good use of Altair declarative layered composition
19-
- Custom geologically-conventional color palette with intentional typography hierarchy
20-
- Tooltips with formation, lithology, age, and thickness information
21-
- Age boundary dashed lines add professional geological context
16+
- Excellent use of real Grand Canyon geological formation names creating highly
17+
realistic and educational data
18+
- Clean layered composition using Altair declarative + operator for rects, patterns,
19+
labels, and age boundaries
20+
- Thoughtful domain-appropriate color palette with geologically conventional associations
21+
- Good typography hierarchy with bold formations, italic ages, and regular patterns
22+
- Full interactivity support via tooltips and HTML export
2223
weaknesses:
23-
- Depth axis is inverted - spec requires depth increasing downward but plot shows
24-
upward
25-
- Title format includes extra Stratigraphic Column prefix beyond required format
26-
- Siltstone and Limestone colors are both blue tones and hard to distinguish
27-
- Pattern symbols are faint at 0.6 opacity and do not effectively convey lithology
24+
- Text-based pattern symbols are small and do not fully replicate geological lithology
25+
fill patterns
26+
- Age labels at 15pt could be slightly larger for better readability
27+
- No visual emphasis on geological transitions or unconformities to enhance data
28+
storytelling
29+
- Color palette could be optimized for colorblind accessibility
2830
image_description: 'The plot shows a vertical stratigraphic column with 10 geological
29-
layers stacked from 0m (bottom) to 200m (top). Each layer is a colored rectangle
30-
representing a lithology type: Sandstone (golden yellow), Shale (gray), Limestone
31-
(blue), Siltstone (light blue), and Conglomerate (orange). Formation names (Cedar
32-
Mesa Fm, Organ Rock Fm, White Rim Fm, De Chelly Fm, Coconino Fm, Hermit Fm, Supai
33-
Group, Redwall Fm, Temple Butte Fm, Muav Fm) are labeled in bold to the right
34-
of each layer. Geological age labels (Permian, Pennsylvanian, Mississippian, Devonian,
35-
Cambrian) appear in italics on the left side. Dashed horizontal lines mark age
36-
boundaries between geological periods. Text-based pattern symbols (dots, dashes,
37-
squares, circles) are rendered inside each layer at reduced opacity. A horizontal
38-
legend at the bottom shows all 5 lithology types with colored swatches. The title
39-
reads "Stratigraphic Column · column-stratigraphic · altair · pyplots.ai" at the
40-
top. The y-axis is labeled "Depth (m)" with tick marks every 10m. Depth increases
41-
upward (0 at bottom, 200 at top), which is contrary to the spec requirement.'
31+
layers stacked from 0m (top) to 200m (bottom) depth. Each layer is a colored rectangle:
32+
Sandstone in yellow (#F5D76E), Shale in gray (#7B8D8E), Limestone in blue (#5DADE2),
33+
Siltstone in purple (#C39BD3), and Conglomerate in orange (#E67E22). Inside each
34+
rectangle, text-based pattern symbols indicate lithology (dots for sandstone,
35+
dashes for shale, grid squares for limestone, short dashes for siltstone, circles
36+
for conglomerate). Formation names (Cedar Mesa Fm, Organ Rock Fm, White Rim Fm,
37+
De Chelly Fm, Coconino Fm, Hermit Fm, Supai Group, Redwall Fm, Temple Butte Fm,
38+
Muav Fm) appear in bold to the right of each layer. Age labels (Permian, Pennsylvanian,
39+
Mississippian, Devonian, Cambrian) appear in italics on the left side. Dashed
40+
horizontal lines mark geological period boundaries. The Y-axis shows "Depth (m)"
41+
with depth increasing downward. A horizontal legend at the bottom identifies the
42+
5 lithology types. Title reads "column-stratigraphic · altair · pyplots.ai" at
43+
the top.'
4244
criteria_checklist:
4345
visual_quality:
4446
score: 26
@@ -49,41 +51,42 @@ review:
4951
score: 7
5052
max: 8
5153
passed: true
52-
comment: Font sizes explicitly set throughout (title 26pt, axis 22/18pt, labels
53-
15-16pt, legend 18-20pt). All readable.
54+
comment: Font sizes explicitly set throughout. Age labels at 15pt slightly
55+
below guideline but readable.
5456
- id: VQ-02
5557
name: No Overlap
5658
score: 6
5759
max: 6
5860
passed: true
59-
comment: No overlapping text or elements anywhere.
61+
comment: No overlapping text. Age labels left, formation labels right, pattern
62+
symbols centered.
6063
- id: VQ-03
6164
name: Element Visibility
6265
score: 5
6366
max: 6
6467
passed: true
65-
comment: Layer rectangles clearly visible. Pattern symbols faint at opacity
66-
0.6.
68+
comment: Layer rectangles clearly visible with distinct colors. Pattern text
69+
symbols could be more prominent.
6770
- id: VQ-04
6871
name: Color Accessibility
6972
score: 3
7073
max: 4
7174
passed: true
72-
comment: Siltstone and Limestone both blue tones, could be confused by colorblind
73-
viewers.
75+
comment: Five distinct hues distinguishable for most color vision types. Not
76+
a standard colorblind-safe palette.
7477
- id: VQ-05
7578
name: Layout & Canvas
7679
score: 3
7780
max: 4
7881
passed: true
79-
comment: Column well-centered with labels on sides. Some unused horizontal
80-
space.
82+
comment: Column well-centered with labels on both sides. Some unused space
83+
on far left.
8184
- id: VQ-06
8285
name: Axis Labels & Title
8386
score: 2
8487
max: 2
8588
passed: true
86-
comment: Y-axis labeled Depth (m) with units. X-axis hidden appropriately.
89+
comment: Y-axis labeled Depth (m) with units. X-axis appropriately hidden.
8790
design_excellence:
8891
score: 12
8992
max: 20
@@ -93,51 +96,52 @@ review:
9396
score: 5
9497
max: 8
9598
passed: true
96-
comment: Custom geological color palette, intentional typography hierarchy.
97-
Above defaults but not publication-level.
99+
comment: Custom geologically-conventional color palette. Typography hierarchy
100+
with bold formations and italic ages. Above defaults but not publication-ready.
98101
- id: DE-02
99102
name: Visual Refinement
100103
score: 4
101104
max: 6
102105
passed: true
103-
comment: View borders removed, no grid, dashed age boundaries add structure.
106+
comment: View stroke removed, dashed age boundary lines, no unnecessary gridlines.
107+
Clean appearance.
104108
- id: DE-03
105109
name: Data Storytelling
106110
score: 3
107111
max: 6
108112
passed: true
109-
comment: Geological time progression creates natural narrative. No clear focal
110-
point or emphasis.
113+
comment: Age progression from Cambrian to Permian tells geological story.
114+
Age boundary lines create hierarchy. No emphasis on key transitions.
111115
spec_compliance:
112-
score: 10
116+
score: 14
113117
max: 15
114118
items:
115119
- id: SC-01
116120
name: Plot Type
117121
score: 5
118122
max: 5
119123
passed: true
120-
comment: 'Correct: vertical stratigraphic column with stacked rectangular
121-
blocks.'
124+
comment: Correct vertical stratigraphic column with stacked rectangular blocks.
122125
- id: SC-02
123126
name: Required Features
124-
score: 2
127+
score: 3
125128
max: 4
126-
passed: false
127-
comment: Depth axis direction wrong. Spec requires increasing downward but
128-
shows increasing upward.
129+
passed: true
130+
comment: All major features present. Text-based patterns are reasonable Altair
131+
workaround but not true fill patterns.
129132
- id: SC-03
130133
name: Data Mapping
131-
score: 1
134+
score: 3
132135
max: 3
133-
passed: false
134-
comment: Y-axis inverted from spec requirement. Depth should increase downward.
136+
passed: true
137+
comment: Depth on Y-axis with correct reversed scale, layers properly positioned.
135138
- id: SC-04
136139
name: Title & Legend
137-
score: 2
140+
score: 3
138141
max: 3
139142
passed: true
140-
comment: Title has extra prefix. Legend labels correct.
143+
comment: Title format correct. Legend labels match 5 lithology types with
144+
correct colors.
141145
data_quality:
142146
score: 14
143147
max: 15
@@ -147,20 +151,22 @@ review:
147151
score: 5
148152
max: 6
149153
passed: true
150-
comment: 10 layers, 5 lithologies, varying thicknesses, multiple geological
151-
ages.
154+
comment: 10 layers with 5 lithology types, varying thicknesses, 5 geological
155+
periods.
152156
- id: DQ-02
153157
name: Realistic Context
154158
score: 5
155159
max: 5
156160
passed: true
157-
comment: Real Grand Canyon formations with correct geological ages.
161+
comment: Real Grand Canyon formation names with geologically accurate age
162+
assignments.
158163
- id: DQ-03
159164
name: Appropriate Scale
160165
score: 4
161166
max: 4
162167
passed: true
163-
comment: Realistic thicknesses and total depth of 200m.
168+
comment: 0-200m depth with 15-25m layer thicknesses realistic for sedimentary
169+
section.
164170
code_quality:
165171
score: 10
166172
max: 10
@@ -170,13 +176,13 @@ review:
170176
score: 3
171177
max: 3
172178
passed: true
173-
comment: 'Linear flow: imports, data, plot components, combine, save.'
179+
comment: Clean imports, data, plot, save structure. No functions or classes.
174180
- id: CQ-02
175181
name: Reproducibility
176182
score: 2
177183
max: 2
178184
passed: true
179-
comment: Fully deterministic data, no random elements.
185+
comment: Fully deterministic with hardcoded data.
180186
- id: CQ-03
181187
name: Clean Imports
182188
score: 2
@@ -188,13 +194,13 @@ review:
188194
score: 2
189195
max: 2
190196
passed: true
191-
comment: Clean, well-structured code with good DataFrame usage.
197+
comment: Clean, well-organized with appropriate solutions for Altair constraints.
192198
- id: CQ-05
193199
name: Output & API
194200
score: 1
195201
max: 1
196202
passed: true
197-
comment: Saves as plot.png and plot.html. Current API.
203+
comment: Saves as plot.png and plot.html. Current Altair API.
198204
library_mastery:
199205
score: 7
200206
max: 10
@@ -204,15 +210,15 @@ review:
204210
score: 4
205211
max: 5
206212
passed: true
207-
comment: 'Good declarative grammar: mark_rect, mark_text, mark_rule, transform_calculate,
208-
layered composition.'
213+
comment: 'Good use of declarative grammar: mark_rect, mark_text, mark_rule,
214+
layered composition, transform_calculate.'
209215
- id: LM-02
210216
name: Distinctive Features
211217
score: 3
212218
max: 5
213219
passed: true
214-
comment: Uses transform_calculate, tooltip encoding, HTML export, layered
215-
composition operator.
220+
comment: Uses transform_calculate, declarative layer composition, tooltips,
221+
HTML export.
216222
verdict: REJECTED
217223
impl_tags:
218224
dependencies: []

0 commit comments

Comments
 (0)