Skip to content

Commit db494a7

Browse files
chore(seaborn): update quality score 89 and review feedback for stereonet-equal-area
1 parent 0795596 commit db494a7

2 files changed

Lines changed: 72 additions & 76 deletions

File tree

plots/stereonet-equal-area/implementations/seaborn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""pyplots.ai
1+
""" pyplots.ai
22
stereonet-equal-area: Structural Geology Stereonet (Equal-Area Projection)
33
Library: seaborn 0.13.2 | Python 3.14.3
44
Quality: 89/100 | Created: 2026-03-15

plots/stereonet-equal-area/metadata/seaborn.yaml

Lines changed: 71 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library: seaborn
22
specification_id: stereonet-equal-area
33
created: '2026-03-15T22:58:38Z'
4-
updated: '2026-03-15T23:20:21Z'
4+
updated: '2026-03-15T23:27:27Z'
55
generated_by: claude-opus-4-5-20251101
66
workflow_run: 23121188794
77
issue: 4576
@@ -13,83 +13,83 @@ preview_html: null
1313
quality_score: 89
1414
review:
1515
strengths:
16-
- Perfect spec compliance - all required stereonet features correctly implemented
17-
(great circles, poles, density contours, grid, tick marks, legend)
18-
- Correct equal-area projection math with proper pole conversion formulas
19-
- Excellent color accessibility - blue/orange/purple/teal colorblind-safe palette
20-
- 'Strong design polish: outer glow rings, graduated tick marks, marker shape+size
21-
encoding, FAFAFA background'
22-
- Clean, well-structured code with appropriate complexity for a specialized plot
23-
type
24-
- Good data storytelling through marker size encoding by dip angle and density contour
25-
overlay
16+
- Mathematically correct equal-area (Schmidt net) projection with proper Lambert
17+
formula
18+
- Excellent colorblind accessibility with both color AND shape redundancy
19+
- 'Sophisticated visual hierarchy: graduated tick marks, scaled marker sizes, glow
20+
rings, desaturated contours'
21+
- 'Full spec compliance: all required features present (great circles, poles, density
22+
contours, grid, legend, tick marks)'
23+
- Realistic geological data with four distinct structural domains
24+
- Clean, well-organized code with appropriate complexity for this specialized plot
2625
weaknesses:
27-
- Library mastery limited by inherent need for low-level matplotlib for stereonet
28-
primitives
29-
- Degree labels at 14pt could be slightly larger for optimal readability at full
30-
resolution
31-
image_description: 'The plot displays a lower-hemisphere equal-area (Schmidt net)
32-
stereonet projection on a square canvas with a light gray (#FAFAFA) background.
33-
A bold black primitive circle contains the stereonet with subtle outer glow rings
34-
for depth. Cardinal direction labels (N in larger bold, S, E, W in bold) are placed
35-
around the perimeter, with degree labels every 30° in gray. Graduated tick marks
36-
appear every 10° around the circle. Four feature types are plotted as colored
37-
poles with distinct marker shapes: Bedding (blue circles, #306998, clustered in
38-
SW), Joint Set 1 (orange squares, #E88D39, clustered in SW/S), Joint Set 2 (purple
39-
diamonds, #8B5FC7, clustered in NW/N), and Fault (teal triangles, #17A2B8, clustered
40-
in E). Marker sizes vary by dip angle (steeper = larger). KDE density contours
41-
(filled with low alpha, outlined) highlight preferred orientations for each cluster.
42-
Representative great circles are drawn in each feature type''s color at reduced
43-
opacity. A subtle equal-area grid (light gray dashed lines) provides reference.
44-
The legend in the upper left lists all four feature types with matching marker
45-
shapes. Title reads "stereonet-equal-area · seaborn · pyplots.ai". An italic annotation
46-
"n = 110 measurements" appears in the bottom right.'
26+
- Density contours are very subtle (alpha=0.15) and may be hard to see at smaller
27+
display sizes
28+
- Measurement annotation at 13pt is slightly below ideal size for the canvas
29+
- Great circles could be slightly more prominent (alpha=0.45 makes them faint)
30+
image_description: 'The plot displays a Schmidt equal-area (lower-hemisphere) stereonet
31+
projection on a light gray (#FAFAFA) background within a 12x12 square canvas.
32+
A dark primitive circle encloses the projection area, surrounded by subtle glow
33+
rings. Four geological feature types are plotted as poles (points) with distinct
34+
marker shapes and a colorblind-safe palette: Bedding (blue circles, clustered
35+
in the west-center), Joint Set 1 (orange squares, clustered in the SW quadrant
36+
around 210-240 degrees), Joint Set 2 (purple diamonds, clustered in the N/NNE
37+
area around 330-30 degrees), and Fault (teal triangles, clustered in the E/ESE
38+
area around 90-120 degrees). Great circles (curved lines) are drawn in corresponding
39+
colors for 3 representative planes per feature type. Semi-transparent filled density
40+
contours (KDE) surround each cluster with thin contour lines. Tick marks appear
41+
every 10 degrees with graduated lengths (longer at cardinal/30-degree intervals).
42+
Cardinal directions (N, S, E, W) are labeled in bold, with degree marks every
43+
30 degrees. A legend in the upper left shows all four feature types with matching
44+
marker shapes. The title reads "stereonet-equal-area · seaborn · pyplots.ai".
45+
An italic annotation "n = 110 measurements" appears in the lower right corner.
46+
Dashed concentric grid circles and great-circle grid lines provide subtle reference.'
4747
criteria_checklist:
4848
visual_quality:
49-
score: 28
49+
score: 27
5050
max: 30
5151
items:
5252
- id: VQ-01
5353
name: Text Legibility
5454
score: 7
5555
max: 8
5656
passed: true
57-
comment: 'Font sizes explicitly set: title=24, cardinal=26/22, degree=14,
58-
legend=15/17, annotation=13. Degree labels at 14pt slightly small but readable.'
57+
comment: All font sizes explicitly set (title=24, cardinals=22-26, degrees=16,
58+
legend=15/17). Measurement annotation at 13pt slightly small.
5959
- id: VQ-02
6060
name: No Overlap
61-
score: 6
61+
score: 5
6262
max: 6
6363
passed: true
64-
comment: No text overlap. Legend well-positioned outside stereonet with bbox_to_anchor.
64+
comment: No text overlap. Minor marker overlap within dense pole clusters,
65+
but all markers distinguishable via different shapes and white edges.
6566
- id: VQ-03
6667
name: Element Visibility
6768
score: 5
6869
max: 6
6970
passed: true
70-
comment: Poles clearly visible with distinct marker shapes and colors. 110
71-
points with sizes 80-200, alpha=0.88. Some density in Bedding cluster.
71+
comment: Poles well-sized with dip-based scaling. Density contours very subtle
72+
(alpha=0.15) and great circles faint (alpha=0.45).
7273
- id: VQ-04
7374
name: Color Accessibility
7475
score: 4
7576
max: 4
7677
passed: true
77-
comment: Blue/orange/purple/teal palette is colorblind-safe. No red-green
78-
pairing. Previous color issue resolved.
78+
comment: Colorblind-safe palette (blue, orange, purple, teal) with shape redundancy
79+
per feature type.
7980
- id: VQ-05
8081
name: Layout & Canvas
8182
score: 4
8283
max: 4
8384
passed: true
84-
comment: Square 12x12 figure ideal for stereonet. Projection fills canvas
85-
well with balanced margins.
85+
comment: Square figure with stereonet filling canvas well. Balanced margins.
8686
- id: VQ-06
8787
name: Axis Labels & Title
8888
score: 2
8989
max: 2
9090
passed: true
91-
comment: Cardinal directions and degree labels serve as appropriate axis labels
92-
for a stereonet projection.
91+
comment: Cardinal directions and degree marks serve as appropriate axis labels
92+
for stereonet.
9393
design_excellence:
9494
score: 15
9595
max: 20
@@ -99,23 +99,22 @@ review:
9999
score: 6
100100
max: 8
101101
passed: true
102-
comment: Custom colorblind-safe palette, outer glow rings, graduated tick
103-
marks, marker shape differentiation, size encoding, white edges, FAFAFA
104-
background. Strong design.
102+
comment: Custom palette, graduated ticks, glow rings, different marker shapes,
103+
refined typography hierarchy. Above defaults.
105104
- id: DE-02
106105
name: Visual Refinement
107106
score: 5
108107
max: 6
109108
passed: true
110-
comment: Spines removed, axes hidden, subtle dashed grid, graduated ticks,
111-
outer glow, clean FAFAFA background.
109+
comment: Spines removed, subtle dashed grid, generous whitespace, polished
110+
legend, italic annotation.
112111
- id: DE-03
113112
name: Data Storytelling
114113
score: 4
115114
max: 6
116115
passed: true
117-
comment: Marker size encodes dip angle. Four distinct clusters apparent. KDE
118-
density contours highlight preferred orientations.
116+
comment: Marker sizes scale by dip angle. Four clearly separated clusters
117+
with density contours highlighting preferred orientations.
119118
spec_compliance:
120119
score: 15
121120
max: 15
@@ -125,26 +124,26 @@ review:
125124
score: 5
126125
max: 5
127126
passed: true
128-
comment: Correct lower-hemisphere equal-area (Schmidt net) projection.
127+
comment: Correct equal-area (Schmidt net) lower-hemisphere projection.
129128
- id: SC-02
130129
name: Required Features
131130
score: 4
132131
max: 4
133132
passed: true
134-
comment: 'All features present: great circles, poles, density contours, grid,
135-
tick marks, cardinal labels, legend.'
133+
comment: 'All spec features present: great circles, poles, density contours,
134+
color-coding, ticks, N label, legend, grid.'
136135
- id: SC-03
137136
name: Data Mapping
138137
score: 3
139138
max: 3
140139
passed: true
141-
comment: Strike/dip correctly converted to equal-area pole projections.
140+
comment: Correct strike/dip to pole projection using Lambert equal-area formula.
142141
- id: SC-04
143142
name: Title & Legend
144143
score: 3
145144
max: 3
146145
passed: true
147-
comment: Title format correct. Legend labels match data categories with correct
146+
comment: Title format correct. Legend labels match feature types with correct
148147
marker shapes.
149148
data_quality:
150149
score: 15
@@ -155,22 +154,21 @@ review:
155154
score: 6
156155
max: 6
157156
passed: true
158-
comment: Four feature types with distinct orientations and dip angles. Shows
159-
clustering patterns and varied spreads.
157+
comment: Four feature types with distinct orientations showing great circles,
158+
poles, and density contours.
160159
- id: DQ-02
161160
name: Realistic Context
162161
score: 5
163162
max: 5
164163
passed: true
165-
comment: Geological field measurements. Scientifically appropriate, neutral
166-
context.
164+
comment: Realistic geological field measurements with plausible strike/dip
165+
values.
167166
- id: DQ-03
168167
name: Appropriate Scale
169168
score: 4
170169
max: 4
171170
passed: true
172-
comment: 110 measurements within spec range. Realistic normal distributions
173-
clipped to valid ranges.
171+
comment: 110 measurements within spec range, realistic angular values.
174172
code_quality:
175173
score: 10
176174
max: 10
@@ -180,8 +178,7 @@ review:
180178
score: 3
181179
max: 3
182180
passed: true
183-
comment: 'Linear flow: imports, data, projection, plot, save. No functions
184-
or classes.'
181+
comment: 'Linear flow: imports, data, projection, plotting, save. No functions/classes.'
185182
- id: CQ-02
186183
name: Reproducibility
187184
score: 2
@@ -193,46 +190,45 @@ review:
193190
score: 2
194191
max: 2
195192
passed: true
196-
comment: All four imports used (matplotlib, numpy, pandas, seaborn).
193+
comment: All imports used.
197194
- id: CQ-04
198195
name: Code Elegance
199196
score: 2
200197
max: 2
201198
passed: true
202-
comment: Well-structured. Complex projection math is necessarily so. No fake
203-
UI.
199+
comment: Appropriate complexity for specialized stereonet. No fake UI.
204200
- id: CQ-05
205201
name: Output & API
206202
score: 1
207203
max: 1
208204
passed: true
209-
comment: Saves as plot.png at 300 dpi. No deprecated API.
205+
comment: Saves as plot.png with dpi=300, current API.
210206
library_mastery:
211-
score: 6
207+
score: 7
212208
max: 10
213209
items:
214210
- id: LM-01
215211
name: Idiomatic Usage
216-
score: 3
212+
score: 4
217213
max: 5
218214
passed: true
219-
comment: Uses sns.kdeplot, scatterplot, set_theme, set_context, despine, color_palette,
220-
desaturate. But majority is matplotlib.
215+
comment: Good use of sns.kdeplot, scatterplot, set_theme, despine, desaturate.
216+
Much of stereonet necessarily matplotlib-based.
221217
- id: LM-02
222218
name: Distinctive Features
223219
score: 3
224220
max: 5
225221
passed: true
226-
comment: sns.kdeplot for density contours with hue and sns.scatterplot with
227-
multi-encoding are distinctly seaborn.
222+
comment: Leverages kdeplot with hue+fill, desaturate for color manipulation,
223+
scatterplot hue+style+size encoding.
228224
verdict: REJECTED
229225
impl_tags:
230226
dependencies: []
231227
techniques:
232228
- annotations
233229
- custom-legend
234230
- patches
235-
- manual-ticks
231+
- layer-composition
236232
patterns:
237233
- data-generation
238234
- iteration-over-groups

0 commit comments

Comments
 (0)