Skip to content

Commit 0c9f0f7

Browse files
chore(plotly): update quality score 83 and review feedback for stereonet-equal-area
1 parent 53895bc commit 0c9f0f7

2 files changed

Lines changed: 232 additions & 10 deletions

File tree

plots/stereonet-equal-area/implementations/plotly.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: plotly | Python 3.13
4-
Quality: pending | Created: 2026-03-15
3+
Library: plotly 6.6.0 | Python 3.14.3
4+
Quality: 83/100 | Created: 2026-03-15
55
"""
66

77
import numpy as np
Lines changed: 229 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
# Per-library metadata for plotly implementation of stereonet-equal-area
2-
# Auto-generated by impl-generate.yml
3-
41
library: plotly
52
specification_id: stereonet-equal-area
63
created: '2026-03-15T22:59:29Z'
7-
updated: '2026-03-15T22:59:29Z'
4+
updated: '2026-03-15T23:03:26Z'
85
generated_by: claude-opus-4-5-20251101
96
workflow_run: 23121188861
107
issue: 4576
@@ -13,7 +10,232 @@ library_version: 6.6.0
1310
preview_url: https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/plotly/plot.png
1411
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/plotly/plot_thumb.png
1512
preview_html: https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/plotly/plot.html
16-
quality_score: null
13+
quality_score: 83
1714
review:
18-
strengths: []
19-
weaknesses: []
15+
strengths:
16+
- Mathematically correct equal-area (Schmidt) projection with proper pole and great
17+
circle computation
18+
- 'All specification features fully implemented: great circles, poles, density contours,
19+
tick marks, cardinal labels, legend'
20+
- Excellent data quality with realistic geological context and appropriate structural
21+
feature variety
22+
- Clean, well-structured code with good comments explaining the projection geometry
23+
- Thoughtful density contour styling with warm color gradient and appropriate transparency
24+
weaknesses:
25+
- Hover information disabled on all traces — Plotly key strength of interactivity
26+
is completely unused for pole data
27+
- Red-green color combination (Fault vs Joint Set 2) may be problematic for colorblind
28+
viewers
29+
- No subtitle or descriptive annotation indicating this is a Lower Hemisphere Equal-Area
30+
Projection
31+
- Library mastery is limited — implementation treats Plotly as a static renderer
32+
rather than leveraging interactive capabilities
33+
image_description: 'The plot displays a structural geology stereonet using Schmidt
34+
equal-area (lower-hemisphere) projection. A black primitive circle defines the
35+
boundary, with tick marks every 10 degrees around the perimeter and bold cardinal
36+
direction labels (N, S, E, W) plus degree labels every 30 degrees. Four feature
37+
types are plotted as colored pole points: Bedding (steel blue, ~20 points clustered
38+
in the SE quadrant), Joint Set 1 (orange, ~15 points near the E edge), Joint Set
39+
2 (green, ~12 points near the S edge), and Fault (red, ~8 points scattered in
40+
the SW quadrant). Semi-transparent great circle arcs are drawn in matching colors
41+
for a subset of planes. Warm-toned KDE density contours (yellow-orange-red gradient)
42+
highlight pole concentration areas, particularly around the Bedding cluster. Subtle
43+
dotted grid lines show 30 and 60 degree small circles plus N-S and E-W diameters.
44+
A bordered legend titled "Feature Type" sits outside the plot to the upper right.
45+
The title reads "stereonet-equal-area · plotly · pyplots.ai" centered at the top.
46+
White background with plotly_white template.'
47+
criteria_checklist:
48+
visual_quality:
49+
score: 26
50+
max: 30
51+
items:
52+
- id: VQ-01
53+
name: Text Legibility
54+
score: 7
55+
max: 8
56+
passed: true
57+
comment: All font sizes explicitly set (title 28, cardinal 22, degrees 15,
58+
legend title 20, legend items 18). Degree labels slightly small at 15pt.
59+
- id: VQ-02
60+
name: No Overlap
61+
score: 6
62+
max: 6
63+
passed: true
64+
comment: No overlapping text or elements. All labels well-separated.
65+
- id: VQ-03
66+
name: Element Visibility
67+
score: 5
68+
max: 6
69+
passed: true
70+
comment: Markers size 13 with white edges clearly visible. Some Bedding poles
71+
overlap slightly in cluster.
72+
- id: VQ-04
73+
name: Color Accessibility
74+
score: 3
75+
max: 4
76+
passed: true
77+
comment: Red and green used together for Fault and Joint Set 2 may be problematic
78+
for colorblind viewers.
79+
- id: VQ-05
80+
name: Layout & Canvas
81+
score: 4
82+
max: 4
83+
passed: true
84+
comment: Stereonet well-centered with good proportions. Legend positioned
85+
outside with adequate margin.
86+
- id: VQ-06
87+
name: Axis Labels & Title
88+
score: 1
89+
max: 2
90+
passed: true
91+
comment: Cardinal directions and degree labels present but no descriptive
92+
subtitle for projection type.
93+
design_excellence:
94+
score: 12
95+
max: 20
96+
items:
97+
- id: DE-01
98+
name: Aesthetic Sophistication
99+
score: 5
100+
max: 8
101+
passed: true
102+
comment: Custom palette, white marker edges, semi-transparent great circles.
103+
Above defaults but not publication-quality.
104+
- id: DE-02
105+
name: Visual Refinement
106+
score: 4
107+
max: 6
108+
passed: true
109+
comment: Axes hidden, subtle dotted grid, tick mark variation. Good attention
110+
to detail.
111+
- id: DE-03
112+
name: Data Storytelling
113+
score: 3
114+
max: 6
115+
passed: true
116+
comment: Density contours highlight orientations but no annotation guiding
117+
viewer to key insights.
118+
spec_compliance:
119+
score: 15
120+
max: 15
121+
items:
122+
- id: SC-01
123+
name: Plot Type
124+
score: 5
125+
max: 5
126+
passed: true
127+
comment: Correct Schmidt equal-area lower-hemisphere projection.
128+
- id: SC-02
129+
name: Required Features
130+
score: 4
131+
max: 4
132+
passed: true
133+
comment: 'All features present: great circles, poles, density contours, tick
134+
marks, cardinal labels, legend, subtle grid.'
135+
- id: SC-03
136+
name: Data Mapping
137+
score: 3
138+
max: 3
139+
passed: true
140+
comment: Strike/dip correctly converted to poles and projected via equal-area
141+
formula.
142+
- id: SC-04
143+
name: Title & Legend
144+
score: 3
145+
max: 3
146+
passed: true
147+
comment: Title matches required format. Legend labels match feature types.
148+
data_quality:
149+
score: 15
150+
max: 15
151+
items:
152+
- id: DQ-01
153+
name: Feature Coverage
154+
score: 6
155+
max: 6
156+
passed: true
157+
comment: Four distinct feature types with different orientation patterns showing
158+
clustering, spread, and variety.
159+
- id: DQ-02
160+
name: Realistic Context
161+
score: 5
162+
max: 5
163+
passed: true
164+
comment: Realistic geological field mapping scenario with plausible structural
165+
features.
166+
- id: DQ-03
167+
name: Appropriate Scale
168+
score: 4
169+
max: 4
170+
passed: true
171+
comment: All values within valid ranges with realistic scatter.
172+
code_quality:
173+
score: 10
174+
max: 10
175+
items:
176+
- id: CQ-01
177+
name: KISS Structure
178+
score: 3
179+
max: 3
180+
passed: true
181+
comment: Linear flow with no functions or classes.
182+
- id: CQ-02
183+
name: Reproducibility
184+
score: 2
185+
max: 2
186+
passed: true
187+
comment: np.random.seed(42) set at start.
188+
- id: CQ-03
189+
name: Clean Imports
190+
score: 2
191+
max: 2
192+
passed: true
193+
comment: All three imports used.
194+
- id: CQ-04
195+
name: Code Elegance
196+
score: 2
197+
max: 2
198+
passed: true
199+
comment: Clean implementation with well-structured projection math.
200+
- id: CQ-05
201+
name: Output & API
202+
score: 1
203+
max: 1
204+
passed: true
205+
comment: Saves as plot.png with correct dimensions.
206+
library_mastery:
207+
score: 5
208+
max: 10
209+
items:
210+
- id: LM-01
211+
name: Idiomatic Usage
212+
score: 3
213+
max: 5
214+
passed: true
215+
comment: Correct go.Figure/go.Scatter/go.Contour usage but stereonet built
216+
entirely in Cartesian with manual math.
217+
- id: LM-02
218+
name: Distinctive Features
219+
score: 2
220+
max: 5
221+
passed: false
222+
comment: HTML export used but hover interactivity completely disabled on all
223+
traces.
224+
verdict: REJECTED
225+
impl_tags:
226+
dependencies:
227+
- scipy
228+
techniques:
229+
- annotations
230+
- html-export
231+
- polar-projection
232+
patterns:
233+
- data-generation
234+
- iteration-over-groups
235+
dataprep:
236+
- kde
237+
styling:
238+
- alpha-blending
239+
- edge-highlighting
240+
- grid-styling
241+
- custom-colormap

0 commit comments

Comments
 (0)