11library : plotly
22specification_id : heatmap-basic
33created : ' 2025-12-23T00:46:03Z'
4- updated : ' 2026-02-15T21:38:10Z '
4+ updated : ' 2026-02-15T21:46:06Z '
55generated_by : claude-opus-4-6
66workflow_run : 20447950554
77issue : 0
@@ -10,7 +10,7 @@ library_version: 6.5.2
1010preview_url : https://storage.googleapis.com/pyplots-images/plots/heatmap-basic/plotly/plot.png
1111preview_thumb : https://storage.googleapis.com/pyplots-images/plots/heatmap-basic/plotly/plot_thumb.png
1212preview_html : https://storage.googleapis.com/pyplots-images/plots/heatmap-basic/plotly/plot.html
13- quality_score : 89
13+ quality_score : 92
1414impl_tags :
1515 dependencies : []
1616 techniques :
@@ -27,39 +27,37 @@ impl_tags:
2727 - edge-highlighting
2828review :
2929 strengths :
30- - Excellent text legibility with all font sizes explicitly configured for target
31- resolution
32- - Effective diverging RdBu colorscale centered at zero with zmid — immediately reveals
33- positive vs. negative growth
34- - ' Thoughtful data storytelling: subtitle guides reader to seasonal patterns, data
35- engineered with realistic seasonal effects (summer outdoor peaks, Q4 holiday spikes,
36- spring fashion, back-to-school) '
37- - ' Rich Plotly-specific features: hovertemplate with HTML formatting, HTML subtitle,
38- interactive HTML alongside static PNG '
39- - Clean KISS code structure with elegant seasonal pattern generation loop
30+ - Excellent data storytelling with realistic seasonal retail patterns that make
31+ the heatmap informative and engaging
32+ - Publication-quality typography using serif fonts (Palatino/Georgia) with carefully
33+ set font sizes at every level
34+ - Diverging RdBu colorscale centered at zero with signed numeric annotations in
35+ every cell — clear and informative
36+ - Clean code structure with appropriate data generation complexity for realistic
37+ seasonal patterns
38+ - Plotly-idiomatic usage of hovertemplate, texttemplate, and HTML export alongside
39+ static PNG
4040 weaknesses :
41- - ' Canvas utilization could be tighter — left margin (160px) and colorbar placement
42- leave the heatmap area somewhat constrained with moderate whitespace (VQ-05: 2/4)'
43- - ' Aesthetic polish is strong but falls short of publication-ready — could benefit
44- from a custom font family or more typographic refinement (DE-01: 6/8)'
45- - Cell annotations using texttemplate format +.0f rounds to integers, losing the
46- decimal precision available in the data
47- image_description : ' The plot displays a heatmap of monthly sales growth percentages
48- for 8 retail product categories (Electronics, Clothing, Food & Beverage, Books,
49- Sports, Home & Garden, Beauty, Toys) across all 12 months (Jan–Dec). A diverging
50- RdBu colorscale is used, centered at zero — blue tones for negative growth, red/warm
51- tones for positive growth. Each cell contains an annotated value with sign (e.g.,
52- +14.3, -15.3). The title reads "Monthly Sales Growth · heatmap-basic · plotly
53- · pyplots.ai" with a gray subtitle: "Retail categories show clear seasonal surges
54- — summer outdoor/leisure peaks and Q4 holiday gift spikes." A colorbar on the
55- right shows "Sales Growth (%)" ranging from roughly -20% to +20%. Clear seasonal
56- patterns are visible: Sports, Home & Garden, and Toys show summer peaks (Jun–Aug
57- in dark red), while Electronics, Toys, Books, and Beauty show holiday spikes (Nov–Dec
58- in deep red/maroon). Clothing shows spring (Apr) and back-to-school (Sep) bumps.
59- The background is clean white with subtle gaps between cells.'
41+ - Right margin slightly tight — colorbar Sales Growth title is close to the canvas
42+ edge; increasing right margin or adjusting colorbar position would improve balance
43+ - Could leverage more distinctive Plotly features (e.g., custom hoverinfo with category-specific
44+ details, or zmin/zmax for symmetric range)
45+ image_description : ' The plot displays an 8×12 heatmap of monthly sales growth percentages
46+ across retail product categories (Electronics, Clothing, Food & Beverage, Books,
47+ Sports, Home & Garden, Beauty, Toys) over 12 months (Jan–Dec). A diverging RdBu
48+ colorscale is used, centered at zero: deep red cells indicate strong positive
49+ growth (up to ~30%), deep blue cells indicate strong negative growth (down to
50+ ~-21%), and near-white cells are close to zero. Every cell contains a signed numeric
51+ annotation (e.g., "+20.2", "-15.3"). The title reads "Monthly Sales Growth · heatmap-basic
52+ · plotly · pyplots.ai" with a gray subtitle describing seasonal patterns. Axes
53+ are labeled "Month" (x) and "Product Category" (y). A vertical colorbar on the
54+ right shows "Sales Growth (%)" with percentage tick marks. Cells are separated
55+ by small gaps. The background is a light off-white (#fafafa), and the typography
56+ uses a serif font (Palatino/Georgia). The layout is landscape format at 1600×900
57+ (scaled 3×).'
6058 criteria_checklist :
6159 visual_quality :
62- score : 27
60+ score : 28
6361 max : 30
6462 items :
6563 - id : VQ-01
@@ -68,64 +66,63 @@ review:
6866 max : 8
6967 passed : true
7068 comment : ' All font sizes explicitly set: title 28pt, axis titles 22pt, ticks
71- 18pt, cell text 16pt , colorbar title 20pt'
69+ 18pt, annotations 15pt , colorbar title 20pt, colorbar ticks 16pt '
7270 - id : VQ-02
7371 name : No Overlap
7472 score : 6
7573 max : 6
7674 passed : true
77- comment : No overlapping elements; annotations fit within cells
75+ comment : No overlapping text; cell gaps separate annotations cleanly
7876 - id : VQ-03
7977 name : Element Visibility
80- score : 5
78+ score : 6
8179 max : 6
8280 passed : true
83- comment : Cells well-sized for 8x12 matrix with 2px gaps
81+ comment : Heatmap cells well-sized for 8x12 matrix, all clearly visible
8482 - id : VQ-04
8583 name : Color Accessibility
8684 score : 4
8785 max : 4
8886 passed : true
89- comment : RdBu diverging colorscale is colorblind-safe
87+ comment : RdBu diverging colormap is colorblind-distinguishable
9088 - id : VQ-05
9189 name : Layout Balance
9290 score : 2
9391 max : 4
9492 passed : false
95- comment : Left margin 160px and colorbar leave heatmap area somewhat constrained;
96- moderate unused whitespace
93+ comment : Heatmap fills canvas well but colorbar label slightly tight against
94+ right edge
9795 - id : VQ-06
9896 name : Axis Labels & Title
9997 score : 2
10098 max : 2
10199 passed : true
102- comment : ' Descriptive labels with units: Month, Product Category, Sales Growth
103- (%)'
100+ comment : Descriptive labels with units on colorbar
104101 design_excellence :
105- score : 14
102+ score : 16
106103 max : 20
107104 items :
108105 - id : DE-01
109106 name : Aesthetic Sophistication
110- score : 6
107+ score : 7
111108 max : 8
112109 passed : true
113- comment : Strong design with RdBu diverging scale, plotly_white template, gray
114- subtitle , styled colorbar
110+ comment : Publication-quality serif typography, intentional diverging colormap,
111+ cell gaps, muted background , styled colorbar
115112 - id : DE-02
116113 name : Visual Refinement
117- score : 4
114+ score : 5
118115 max : 6
119116 passed : true
120- comment : Good refinement with clean template, cell gaps, custom margins, centered
121- title with subtitle
117+ comment : plotly_white template, cell gaps, styled subtitle with hierarchy,
118+ generous whitespace
122119 - id : DE-03
123120 name : Data Storytelling
124121 score : 4
125122 max : 6
126123 passed : true
127- comment : Subtitle guides reader to seasonal story; data engineered with realistic
128- patterns; color divergence creates visual hierarchy
124+ comment : Seasonal patterns visually evident; subtitle states insight; color
125+ intensity guides viewer
129126 spec_compliance :
130127 score : 15
131128 max : 15
@@ -135,49 +132,49 @@ review:
135132 score : 5
136133 max : 5
137134 passed : true
138- comment : Correct basic heatmap with color intensity
135+ comment : Correct heatmap with matrix format and color intensity mapping
139136 - id : SC-02
140137 name : Required Features
141138 score : 4
142139 max : 4
143140 passed : true
144- comment : ' All spec features: diverging colormap, cell annotations, colorbar,
145- logically ordered rows/columns '
141+ comment : Diverging colormap, value annotations, colorbar legend, logically
142+ ordered categories
146143 - id : SC-03
147144 name : Data Mapping
148145 score : 3
149146 max : 3
150147 passed : true
151- comment : X=months, Y=categories, Z= values correctly mapped
148+ comment : X=months, Y=categories, values mapped to color correctly
152149 - id : SC-04
153- name : Title Format
150+ name : Title & Legend
154151 score : 3
155152 max : 3
156153 passed : true
157- comment : ' Correct format: Monthly Sales Growth · heatmap-basic · plotly ·
158- pyplots.ai'
154+ comment : Title format correct; colorbar serves as legend
159155 data_quality :
160- score : 14
156+ score : 15
161157 max : 15
162158 items :
163159 - id : DQ-01
164160 name : Feature Coverage
165- score : 5
161+ score : 6
166162 max : 6
167163 passed : true
168- comment : Shows positive and negative values, range of magnitudes, clear patterns
164+ comment : Full range of positive and negative values, clear seasonal patterns,
165+ varying magnitudes
169166 - id : DQ-02
170167 name : Realistic Context
171168 score : 5
172169 max : 5
173170 passed : true
174- comment : Realistic retail scenario with plausible seasonal patterns
171+ comment : Retail sales growth with plausible seasonal patterns
175172 - id : DQ-03
176173 name : Appropriate Scale
177174 score : 4
178175 max : 4
179176 passed : true
180- comment : Values range -21% to +30%, realistic for monthly sales growth
177+ comment : Growth percentages -21% to +30% realistic for retail
181178 code_quality :
182179 score : 10
183180 max : 10
@@ -187,13 +184,13 @@ review:
187184 score : 3
188185 max : 3
189186 passed : true
190- comment : Clean imports → data → plot → layout → save
187+ comment : Clean Imports, Data, Plot, Save structure
191188 - id : CQ-02
192189 name : Reproducibility
193190 score : 2
194191 max : 2
195192 passed : true
196- comment : np.random.seed(42)
193+ comment : np.random.seed(42) set
197194 - id : CQ-03
198195 name : Clean Imports
199196 score : 2
@@ -205,29 +202,28 @@ review:
205202 score : 2
206203 max : 2
207204 passed : true
208- comment : Clean, Pythonic seasonal pattern generation
205+ comment : Clean Pythonic code with appropriate complexity
209206 - id : CQ-05
210207 name : Output & API
211208 score : 1
212209 max : 1
213210 passed : true
214- comment : Saves plot.png at 4800x2700 via scale=3
211+ comment : Saves plot.png with correct dimensions and scale=3
215212 library_mastery :
216- score : 9
213+ score : 8
217214 max : 10
218215 items :
219216 - id : LM-01
220217 name : Idiomatic Usage
221218 score : 5
222219 max : 5
223220 passed : true
224- comment : Expert go.Heatmap usage with zmid, texttemplate, hovertemplate, colorbar
225- dict
221+ comment : Expert use of go.Heatmap with colorscale, zmid, texttemplate, hovertemplate
226222 - id : LM-02
227223 name : Distinctive Features
228- score : 4
224+ score : 3
229225 max : 5
230226 passed : true
231- comment : ' Plotly-specific: hovertemplate with HTML , HTML subtitle, interactive
232- HTML export, zmid for diverging center '
233- verdict : REJECTED
227+ comment : Uses hovertemplate, HTML export, texttemplate formatting; standard
228+ Plotly patterns
229+ verdict : APPROVED
0 commit comments