-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplotly.yaml
More file actions
235 lines (235 loc) · 8.01 KB
/
plotly.yaml
File metadata and controls
235 lines (235 loc) · 8.01 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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
library: plotly
specification_id: bar-basic
created: 2025-12-13 23:14:18+00:00
updated: '2026-02-14T14:55:26Z'
generated_by: claude-opus-4-6
workflow_run: 20199224291
issue: 612
python_version: '3.14'
library_version: 6.5.2
preview_url: https://storage.googleapis.com/pyplots-images/plots/bar-basic/plotly/plot.png
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/bar-basic/plotly/plot_thumb.png
preview_html: https://storage.googleapis.com/pyplots-images/plots/bar-basic/plotly/plot.html
quality_score: 92
impl_tags:
dependencies: []
techniques:
- annotations
- html-export
patterns: []
dataprep: []
styling:
- edge-highlighting
- grid-styling
review:
strengths:
- 'Excellent data storytelling with the Top seller annotation providing contextual
insight (17% ahead of #2) and the average reference line giving statistical context'
- All font sizes explicitly set and well-calibrated for 4800x2700 output — perfectly
readable
- Clean, idiomatic Plotly code with good use of library-specific features (hovertemplate,
texttemplate, add_hline with annotation)
- Thoughtful visual hierarchy with subtle darker shade for top performer and minimal
bar outlines
- Dual output (PNG + interactive HTML) leverages Plotly interactive strengths
weaknesses:
- The Top seller annotation box overlaps/crowds the $45,200 value label on the Electronics
bar, creating visual clutter at the most important data point
- The color contrast between the highlighted top bar (#1A4971) and regular bars
(#306998) is quite subtle — could be more visually distinct to reinforce the storytelling
- The average line annotation is pushed to the far right margin — could be positioned
more prominently
improvements: []
verdict: APPROVED
image_description: 'The plot displays a vertical bar chart titled "bar-basic · plotly
· pyplots.ai" centered at the top. Eight bars represent product sales by department,
sorted in descending order from left to right: Electronics ($45,200), Clothing
($38,700), Home & Garden ($31,500), Sports ($27,800), Books ($24,300), Toys ($21,600),
Automotive ($18,900), and Health ($15,400). Dollar-formatted value labels appear
above each bar. The top-performing Electronics bar is rendered in a slightly darker
navy blue (#1A4971) while the remaining bars use a medium blue (#306998). A "Top
seller / 17% ahead of #2" annotation with an arrow points to the Electronics bar.
A dotted horizontal reference line marks the average at $27,925 with a label on
the far right. The background is white with very subtle horizontal gridlines.
The x-axis is labeled "Product Category" and the y-axis "Sales ($)" with dollar-formatted
tick marks. Overall layout is clean and well-proportioned.'
criteria_checklist:
visual_quality:
score: 28
max: 30
items:
- id: VQ-01
name: Text Legibility
score: 8
max: 8
passed: true
comment: 'All font sizes explicitly set: title 28pt, axis labels 22pt, tick
labels 18pt, bar text 20pt. All perfectly readable at 4800x2700.'
- id: VQ-02
name: No Overlap
score: 4
max: 6
passed: false
comment: The Top seller annotation box and the $45,200 value label on the
Electronics bar create visual clutter; the annotation arrow and value text
compete for the same space.
- id: VQ-03
name: Element Visibility
score: 6
max: 6
passed: true
comment: Bars well-sized with appropriate bargap (0.3), all elements clearly
visible.
- id: VQ-04
name: Color Accessibility
score: 4
max: 4
passed: true
comment: Single-hue blue palette is inherently colorblind-safe. No red-green
differentiation.
- id: VQ-05
name: Layout Balance
score: 4
max: 4
passed: true
comment: Good canvas utilization with balanced margins. Plot fills appropriate
portion of canvas.
- id: VQ-06
name: Axis Labels & Title
score: 2
max: 2
passed: true
comment: Product Category and Sales ($) are descriptive with units.
design_excellence:
score: 16
max: 20
items:
- id: DE-01
name: Aesthetic Sophistication
score: 6
max: 8
passed: true
comment: Custom color palette with intentional hierarchy, subtle bar outlines,
clean plotly_white template. Clearly above defaults, strong design.
- id: DE-02
name: Visual Refinement
score: 5
max: 6
passed: true
comment: Subtle gridlines (rgba 0.07), clean template, generous whitespace,
polished margins. Average line label pushed to far right edge.
- id: DE-03
name: Data Storytelling
score: 5
max: 6
passed: true
comment: 'Top seller annotation with contextual insight (17% ahead of #2),
average reference line for context. Good narrative elements.'
spec_compliance:
score: 15
max: 15
items:
- id: SC-01
name: Plot Type
score: 5
max: 5
passed: true
comment: Correct vertical bar chart.
- id: SC-02
name: Required Features
score: 4
max: 4
passed: true
comment: Consistent bar widths, value labels above bars, single color with
highlight, adequate spacing. All spec notes addressed.
- id: SC-03
name: Data Mapping
score: 3
max: 3
passed: true
comment: Categories on x-axis, values on y-axis, correct mapping.
- id: SC-04
name: Title & Legend
score: 3
max: 3
passed: true
comment: Title format bar-basic · plotly · pyplots.ai correct. No legend needed
for single series.
data_quality:
score: 14
max: 15
items:
- id: DQ-01
name: Feature Coverage
score: 5
max: 6
passed: true
comment: 8 categories with clear variation, sorted descending. Good range
($15K-$45K). Could show more extreme variation.
- id: DQ-02
name: Realistic Context
score: 5
max: 5
passed: true
comment: Product sales by department is a real, neutral business scenario.
- id: DQ-03
name: Appropriate Scale
score: 4
max: 4
passed: true
comment: Sales figures $15K-$45K are realistic for department-level retail
sales.
code_quality:
score: 10
max: 10
items:
- id: CQ-01
name: KISS Structure
score: 3
max: 3
passed: true
comment: 'Clean flat structure: import, data, figure, annotation, layout,
save.'
- id: CQ-02
name: Reproducibility
score: 2
max: 2
passed: true
comment: Deterministic hardcoded data, no randomness needed.
- id: CQ-03
name: Clean Imports
score: 2
max: 2
passed: true
comment: Only plotly.graph_objects imported and used.
- id: CQ-04
name: Code Elegance
score: 2
max: 2
passed: true
comment: Clean, well-organized, appropriate complexity.
- id: CQ-05
name: Output & API
score: 1
max: 1
passed: true
comment: Saves as plot.png (1600x900, scale=3) and plot.html. No deprecated
APIs.
library_mastery:
score: 9
max: 10
items:
- id: LM-01
name: Idiomatic Usage
score: 5
max: 5
passed: true
comment: 'Expert use of graph_objects API: go.Bar, add_trace, update_layout,
add_annotation, add_hline with annotation dict.'
- id: LM-02
name: Distinctive Features
score: 4
max: 5
passed: true
comment: 'Uses Plotly-specific features: hovertemplate, texttemplate, add_hline
with embedded annotation, dual output (PNG + HTML).'