Skip to content

Commit 9a7f6b3

Browse files
chore(matplotlib): update quality score 82 and review feedback for stereonet-equal-area
1 parent 4380757 commit 9a7f6b3

2 files changed

Lines changed: 209 additions & 10 deletions

File tree

plots/stereonet-equal-area/implementations/matplotlib.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
stereonet-equal-area: Structural Geology Stereonet (Equal-Area Projection)
3-
Library: matplotlib | Python 3.13
4-
Quality: pending | Created: 2026-03-15
3+
Library: matplotlib 3.10.8 | Python 3.14.3
4+
Quality: 82/100 | Created: 2026-03-15
55
"""
66

77
import matplotlib.pyplot as plt
Lines changed: 206 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
# Per-library metadata for matplotlib implementation of stereonet-equal-area
2-
# Auto-generated by impl-generate.yml
3-
41
library: matplotlib
52
specification_id: stereonet-equal-area
63
created: '2026-03-15T23:01:12Z'
7-
updated: '2026-03-15T23:01:12Z'
4+
updated: '2026-03-15T23:04:56Z'
85
generated_by: claude-opus-4-5-20251101
96
workflow_run: 23121188769
107
issue: 4576
@@ -13,7 +10,209 @@ library_version: 3.10.8
1310
preview_url: https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/matplotlib/plot.png
1411
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/matplotlib/plot_thumb.png
1512
preview_html: null
16-
quality_score: null
13+
quality_score: 82
1714
review:
18-
strengths: []
19-
weaknesses: []
15+
strengths:
16+
- Mathematically correct equal-area projection with proper spherical geometry
17+
- 'Full spec compliance: all required features including density contours'
18+
- Realistic geological data with appropriate strike/dip values
19+
- Clean well-structured code with no over-engineering
20+
- Distinct markers per feature type with white edge highlighting
21+
weaknesses:
22+
- Great circles too faint (alpha=0.15, linewidth=0.7) to be useful
23+
- Title fontsize 22pt below the 24pt guideline
24+
- Fault color has low contrast against gray density contours
25+
- No visual emphasis to guide viewer toward geological interpretation
26+
image_description: 'The plot shows a lower-hemisphere equal-area (Schmidt net) stereonet
27+
on a polar projection with North at top. Three geological feature types are displayed:
28+
Bedding poles (blue circles) clustered in the NE quadrant around 30-60° azimuth,
29+
Joint poles (orange squares) clustered near N around 20-40° azimuth, and Fault
30+
poles (dark gray/maroon triangles) clustered in the W-SW quadrant around 270-300°.
31+
Great circles are drawn as thin, semi-transparent arcs in corresponding colors
32+
across the stereonet. Gray density contours (Kamb-style) highlight the pole clusters.
33+
The perimeter has tick marks every 10° with cardinal directions (N, E, S, W) and
34+
degree labels every 30°. A legend is positioned in the upper right outside the
35+
plot circle. The title reads "stereonet-equal-area · matplotlib · pyplots.ai".
36+
The overall layout is square with the stereonet filling most of the canvas.'
37+
criteria_checklist:
38+
visual_quality:
39+
score: 24
40+
max: 30
41+
items:
42+
- id: VQ-01
43+
name: Text Legibility
44+
score: 6
45+
max: 8
46+
passed: true
47+
comment: Title 22pt (below 24pt guideline), tick/legend labels 16pt are good
48+
- id: VQ-02
49+
name: No Overlap
50+
score: 6
51+
max: 6
52+
passed: true
53+
comment: No text overlap issues
54+
- id: VQ-03
55+
name: Element Visibility
56+
score: 4
57+
max: 6
58+
passed: false
59+
comment: Great circles at alpha=0.15 too faint to distinguish
60+
- id: VQ-04
61+
name: Color Accessibility
62+
score: 3
63+
max: 4
64+
passed: false
65+
comment: Fault color blends with gray density contours
66+
- id: VQ-05
67+
name: Layout & Canvas
68+
score: 3
69+
max: 4
70+
passed: false
71+
comment: Good square layout, minor imbalance from external legend
72+
- id: VQ-06
73+
name: Axis Labels & Title
74+
score: 2
75+
max: 2
76+
passed: true
77+
comment: Cardinal directions and degree marks appropriate for stereonet
78+
design_excellence:
79+
score: 12
80+
max: 20
81+
items:
82+
- id: DE-01
83+
name: Aesthetic Sophistication
84+
score: 5
85+
max: 8
86+
passed: false
87+
comment: Thoughtful palette with distinct markers, above defaults but not
88+
publication-level
89+
- id: DE-02
90+
name: Visual Refinement
91+
score: 4
92+
max: 6
93+
passed: false
94+
comment: Radial ticks hidden, subtle grid, clean stereonet appearance
95+
- id: DE-03
96+
name: Data Storytelling
97+
score: 3
98+
max: 6
99+
passed: false
100+
comment: Three clusters visible with density contours but no emphasis on interpretation
101+
spec_compliance:
102+
score: 15
103+
max: 15
104+
items:
105+
- id: SC-01
106+
name: Plot Type
107+
score: 5
108+
max: 5
109+
passed: true
110+
comment: Correct equal-area Schmidt net projection
111+
- id: SC-02
112+
name: Required Features
113+
score: 4
114+
max: 4
115+
passed: true
116+
comment: 'All spec features present: great circles, poles, contours, legend,
117+
grid'
118+
- id: SC-03
119+
name: Data Mapping
120+
score: 3
121+
max: 3
122+
passed: true
123+
comment: Strike/dip correctly converted to equal-area coordinates
124+
- id: SC-04
125+
name: Title & Legend
126+
score: 3
127+
max: 3
128+
passed: true
129+
comment: Correct title format and descriptive legend labels
130+
data_quality:
131+
score: 14
132+
max: 15
133+
items:
134+
- id: DQ-01
135+
name: Feature Coverage
136+
score: 5
137+
max: 6
138+
passed: true
139+
comment: Three feature types with distinct orientations, good spread
140+
- id: DQ-02
141+
name: Realistic Context
142+
score: 5
143+
max: 5
144+
passed: true
145+
comment: Authentic structural geology field measurements
146+
- id: DQ-03
147+
name: Appropriate Scale
148+
score: 4
149+
max: 4
150+
passed: true
151+
comment: 75 measurements, realistic strike/dip ranges
152+
code_quality:
153+
score: 10
154+
max: 10
155+
items:
156+
- id: CQ-01
157+
name: KISS Structure
158+
score: 3
159+
max: 3
160+
passed: true
161+
comment: Clean linear flow
162+
- id: CQ-02
163+
name: Reproducibility
164+
score: 2
165+
max: 2
166+
passed: true
167+
comment: np.random.seed(42)
168+
- id: CQ-03
169+
name: Clean Imports
170+
score: 2
171+
max: 2
172+
passed: true
173+
comment: Only matplotlib and numpy, both used
174+
- id: CQ-04
175+
name: Code Elegance
176+
score: 2
177+
max: 2
178+
passed: true
179+
comment: Appropriate complexity for domain-specific visualization
180+
- id: CQ-05
181+
name: Output & API
182+
score: 1
183+
max: 1
184+
passed: true
185+
comment: Saves plot.png with dpi=300, current API
186+
library_mastery:
187+
score: 7
188+
max: 10
189+
items:
190+
- id: LM-01
191+
name: Idiomatic Usage
192+
score: 4
193+
max: 5
194+
passed: true
195+
comment: Good polar projection use, ax-level methods
196+
- id: LM-02
197+
name: Distinctive Features
198+
score: 3
199+
max: 5
200+
passed: false
201+
comment: Polar projection with custom equal-area transforms is distinctive
202+
matplotlib capability
203+
verdict: REJECTED
204+
impl_tags:
205+
dependencies: []
206+
techniques:
207+
- polar-projection
208+
- manual-ticks
209+
- layer-composition
210+
patterns:
211+
- data-generation
212+
- iteration-over-groups
213+
dataprep:
214+
- kde
215+
styling:
216+
- alpha-blending
217+
- edge-highlighting
218+
- grid-styling

0 commit comments

Comments
 (0)