-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplotnine.yaml
More file actions
205 lines (205 loc) · 6.35 KB
/
plotnine.yaml
File metadata and controls
205 lines (205 loc) · 6.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
library: plotnine
specification_id: bump-basic
created: '2025-12-23T09:18:24Z'
updated: '2026-02-22T20:55:00+00:00'
generated_by: claude-opus-4-6
workflow_run: 20456610470
issue: 0
python_version: '3.14.3'
library_version: '0.15.3'
preview_url: https://storage.googleapis.com/pyplots-images/plots/bump-basic/plotnine/plot.png
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/bump-basic/plotnine/plot_thumb.png
preview_html: null
quality_score: null
impl_tags:
dependencies: []
techniques:
- annotations
patterns:
- data-generation
dataprep: []
styling:
- minimal-chrome
review:
strengths:
- Excellent implementation of the bump chart concept with proper Y-axis inversion
- Smart use of direct labeling (geom_text) instead of legend for cleaner visualization
- Well-chosen Set2 color palette provides good distinction and colorblind accessibility
- Data tells a compelling story with varied ranking patterns (leader Alpha Corp,
volatile Gamma Tech, stable underperformer Epsilon Labs)
- Clean code structure following KISS principles
weaknesses:
- Grid lines could be more subtle (lower alpha) for a cleaner look
- Axis labels are functional but could be more descriptive
image_description: 'The plot displays a bump chart showing tech company rankings
over 6 quarters (Q1-Q6). Five companies are tracked: Alpha Corp (teal), Gamma
Tech (green), Beta Inc (coral/salmon), Delta Systems (blue/periwinkle), and Epsilon
Labs (pink). The Y-axis shows ranks 1-5 with rank 1 at the top (inverted). Lines
connect each company''s rank across quarters with dot markers at each data point.
Company names appear as labels on the right side at their final Q6 positions.
The title "bump-basic · plotnine · pyplots.ai" is displayed at the top. The background
is minimal with a subtle grid.'
criteria_checklist:
visual_quality:
score: 36
max: 40
items:
- id: VQ-01
name: Text Legibility
score: 10
max: 10
passed: true
comment: Title at 24pt, axis labels at 20pt, tick labels at 16pt - all clearly
readable
- id: VQ-02
name: No Overlap
score: 8
max: 8
passed: true
comment: No overlapping text elements; end labels well-spaced at different
ranks
- id: VQ-03
name: Element Visibility
score: 7
max: 8
passed: true
comment: Lines (size=2.5) and points (size=6) are well-sized; slight deduction
as some line crossings are dense
- id: VQ-04
name: Color Accessibility
score: 5
max: 5
passed: true
comment: Set2 palette is colorblind-safe with good distinction between categories
- id: VQ-05
name: Layout Balance
score: 4
max: 5
passed: true
comment: Good proportions; right side has adequate space for labels but could
be slightly tighter
- id: VQ-06
name: Axis Labels
score: 1
max: 2
passed: true
comment: '"Quarter" and "Rank" are descriptive but lack context (e.g., could
be "Quarterly Period")'
- id: VQ-07
name: Grid & Legend
score: 1
max: 2
passed: true
comment: Grid subtle, legend disabled in favor of direct labels (good choice),
but grid could be even more subtle
spec_compliance:
score: 25
max: 25
items:
- id: SC-01
name: Plot Type
score: 8
max: 8
passed: true
comment: Correct bump chart showing ranking changes over time
- id: SC-02
name: Data Mapping
score: 5
max: 5
passed: true
comment: X=period, Y=rank, color=entity - correctly assigned
- id: SC-03
name: Required Features
score: 5
max: 5
passed: true
comment: Y-axis inverted, distinct colors, dot markers, lines connecting entities
- id: SC-04
name: Data Range
score: 3
max: 3
passed: true
comment: All data visible, axis limits appropriate (0.5-7.5 allows space for
labels)
- id: SC-05
name: Legend Accuracy
score: 2
max: 2
passed: true
comment: Direct labels accurate and match entities
- id: SC-06
name: Title Format
score: 2
max: 2
passed: true
comment: 'Uses correct format: "bump-basic · plotnine · pyplots.ai"'
data_quality:
score: 18
max: 20
items:
- id: DQ-01
name: Feature Coverage
score: 7
max: 8
passed: true
comment: Shows rank changes, overtakes, stability (Epsilon Labs), volatility
(Gamma Tech); good variety but all 5 ranks used every period (no ties shown)
- id: DQ-02
name: Realistic Context
score: 7
max: 7
passed: true
comment: Tech company market rankings is a plausible real-world scenario
- id: DQ-03
name: Appropriate Scale
score: 4
max: 5
passed: true
comment: 5 entities, 6 periods is appropriate; ranks 1-5 sensible
code_quality:
score: 10
max: 10
items:
- id: CQ-01
name: KISS Structure
score: 3
max: 3
passed: true
comment: Simple imports → data → plot → save structure, no functions/classes
- id: CQ-02
name: Reproducibility
score: 3
max: 3
passed: true
comment: Data is deterministic (hardcoded values)
- id: CQ-03
name: Clean Imports
score: 2
max: 2
passed: true
comment: All imports are used
- id: CQ-04
name: No Deprecated API
score: 1
max: 1
passed: true
comment: Uses current plotnine API
- id: CQ-05
name: Output Correct
score: 1
max: 1
passed: true
comment: Saves as "plot.png"
library_features:
score: 3
max: 5
items:
- id: LF-01
name: Uses distinctive library features
score: 3
max: 5
passed: true
comment: Uses ggplot grammar properly with geom_line, geom_point, geom_text,
scale_y_reverse, theme customization; solid plotnine usage but no advanced
features like faceting
verdict: APPROVED