Skip to content

Commit 71000af

Browse files
chore(seaborn): update quality score 92 and review feedback for heatmap-basic
1 parent b8d5302 commit 71000af

2 files changed

Lines changed: 82 additions & 76 deletions

File tree

plots/heatmap-basic/implementations/seaborn.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
"""pyplots.ai
1+
""" pyplots.ai
22
heatmap-basic: Basic Heatmap
33
Library: seaborn 0.13.2 | Python 3.14.3
4-
Quality: 82/100 | Updated: 2026-02-15
4+
Quality: 92/100 | Updated: 2026-02-15
55
"""
66

77
import matplotlib.pyplot as plt
Lines changed: 80 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library: seaborn
22
specification_id: heatmap-basic
33
created: '2025-12-23T00:46:00Z'
4-
updated: '2026-02-15T21:30:48Z'
4+
updated: '2026-02-15T21:38:23Z'
55
generated_by: claude-opus-4-6
66
workflow_run: 20447949053
77
issue: 0
@@ -10,7 +10,7 @@ library_version: 0.13.2
1010
preview_url: https://storage.googleapis.com/pyplots-images/plots/heatmap-basic/seaborn/plot.png
1111
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/heatmap-basic/seaborn/plot_thumb.png
1212
preview_html: null
13-
quality_score: 82
13+
quality_score: 92
1414
impl_tags:
1515
dependencies: []
1616
techniques:
@@ -25,131 +25,137 @@ impl_tags:
2525
- edge-highlighting
2626
review:
2727
strengths:
28-
- Excellent use of sns.clustermap for hierarchical row-clustering, showcasing a
29-
distinctive seaborn capability
30-
- Well-crafted synthetic data with intentional patterns that create a meaningful
31-
story (Sales strong early, Engineering strong late, Finance stable)
32-
- All font sizes explicitly set with good readability at target resolution
33-
- Realistic business context with sensible performance score range
28+
- Excellent use of sns.clustermap — a distinctive seaborn feature that integrates
29+
hierarchical clustering with heatmap visualization
30+
- Intentional data patterns (Sales first-half, Engineering second-half, Finance
31+
stability, HR mid-year dip) create genuine visual storytelling
32+
- 'Strong visual refinement: custom colorbar positioning, spine removal, #fafafa
33+
background, white cell borders, and styled dendrogram'
34+
- All font sizes explicitly set and well-calibrated for the output resolution
35+
- Clean, well-organized code following KISS principles
3436
weaknesses:
35-
- Missing Y-axis label (Department) — the ylabel is set to empty string
36-
- Manual colorbar creation via ScalarMappable after disabling built-in cbar (cbar_pos=None)
37-
is unnecessarily verbose — could use the built-in colorbar support
38-
- Custom diverging palette via sns.diverging_palette(240, 10) is not a standard
39-
colorblind-safe colormap — consider using RdBu_r or coolwarm for better accessibility
40-
- 'Could push design further: no spine removal, no background color refinement,
41-
annotation font could be larger'
42-
image_description: 'The plot displays a clustered heatmap of monthly department
43-
performance scores (0-100) for seven departments (Sales, Finance, Engineering,
44-
Operations, Marketing, Support, HR) across twelve months (Jan-Dec). A diverging
45-
blue-to-red colormap is used, centered at 50 — blue indicates low scores, red
46-
indicates high scores. Each cell contains a white-text integer annotation of the
47-
performance value. A dendrogram on the left groups departments by similarity via
48-
hierarchical row-clustering (columns are not clustered). A vertical colorbar on
49-
the right is labeled "Performance Score" with a 0-100 range. White gridlines separate
50-
each cell. The title "heatmap-basic · seaborn · pyplots.ai" appears at the top
51-
center. The X-axis is labeled "Month" and department names appear on the right
52-
Y-axis. Clear patterns are visible: Sales strong first half fading later, Engineering
53-
strong second half, Finance consistently high (~80-90), HR with lower scores mid-year.'
37+
- Coolwarm colormap could be replaced with a more colorblind-friendly diverging
38+
palette (e.g., RdBu or a custom perceptually-uniform option)
39+
- The Department axis label appears on the far right due to clustermap layout, slightly
40+
detached from the row labels
41+
- Data patterns could be slightly more varied — an additional extreme outlier or
42+
department with a sharp trend reversal would better demonstrate the heatmap full
43+
potential
44+
image_description: 'The plot displays a clustered heatmap showing monthly performance
45+
scores (0-100) across 7 departments (Sales, Finance, Engineering, Operations,
46+
Marketing, Support, HR). A coolwarm diverging colormap is used, centered at 50
47+
— red cells indicate high performance, blue cells low performance. Each cell contains
48+
a white numeric annotation showing the exact score. A row dendrogram on the left
49+
groups departments by similarity via hierarchical clustering (columns are not
50+
clustered). The colorbar on the far left is labeled "Performance Score" with ticks
51+
at 0, 25, 50, 75, 100. Axis labels read "Month" (x-axis) and "Department" (y-axis,
52+
on right side). The title "heatmap-basic · seaborn · pyplots.ai" appears at the
53+
top. The background is a subtle off-white (#fafafa), cells are separated by white
54+
gridlines, and spines are removed for a clean look. Clear patterns are visible:
55+
Sales is strong in the first half, Engineering ramps up in the second half, Finance
56+
is consistently high (80-91), and HR shows a mid-year dip.'
5457
criteria_checklist:
5558
visual_quality:
56-
score: 24
59+
score: 28
5760
max: 30
5861
items:
5962
- id: VQ-01
6063
name: Text Legibility
6164
score: 8
6265
max: 8
6366
passed: true
64-
comment: 'All font sizes explicitly set: title 24pt, xlabel 20pt, ticks 16pt,
65-
annotations 14pt'
67+
comment: 'All font sizes explicitly set: title 24pt, axis labels 20pt, ticks
68+
16pt, annotations 16pt. All perfectly readable'
6669
- id: VQ-02
6770
name: No Overlap
6871
score: 6
6972
max: 6
7073
passed: true
71-
comment: No overlapping text anywhere
74+
comment: No overlapping text anywhere; annotations fit cleanly within cells
7275
- id: VQ-03
7376
name: Element Visibility
74-
score: 5
77+
score: 6
7578
max: 6
7679
passed: true
77-
comment: Annotations readable; could be slightly larger for cell size
80+
comment: Cell sizes well-proportioned for a 7x12 matrix; colors and annotations
81+
clearly distinguishable
7882
- id: VQ-04
7983
name: Color Accessibility
8084
score: 3
8185
max: 4
8286
passed: true
83-
comment: Custom diverging blue-red palette functional but not a standard colorblind-safe
84-
option
87+
comment: Coolwarm diverging palette is acceptable but not optimal for deuteranopia;
88+
not a red-green issue though
8589
- id: VQ-05
8690
name: Layout Balance
8791
score: 3
8892
max: 4
8993
passed: true
90-
comment: Decent layout; dendrogram and colorbar well-placed but some wasted
91-
vertical space
94+
comment: Good canvas utilization; minor issue with dendrogram and colorbar
95+
taking space on the left, Department label on the far right
9296
- id: VQ-06
9397
name: Axis Labels & Title
94-
score: 1
98+
score: 2
9599
max: 2
96-
passed: false
97-
comment: X-axis labeled Month but Y-axis label is empty string — missing Department
98-
label
100+
passed: true
101+
comment: Month, Department, Performance Score are descriptive and appropriate
102+
for this context
99103
design_excellence:
100-
score: 12
104+
score: 15
101105
max: 20
102106
items:
103107
- id: DE-01
104108
name: Aesthetic Sophistication
105109
score: 6
106110
max: 8
107111
passed: true
108-
comment: Clustermap with custom diverging palette, white gridlines, and hierarchical
109-
clustering shows design thought above defaults
112+
comment: Customized colorbar position, facecolor refinement, white cell borders,
113+
spine removal, dendrogram styling — clearly above defaults
110114
- id: DE-02
111115
name: Visual Refinement
112-
score: 4
116+
score: 5
113117
max: 6
114118
passed: true
115-
comment: White cell gridlines, custom colorbar placement, controlled dendrogram
116-
ratio; some defaults remain
119+
comment: 'Spines removed, subtle #fafafa background, white linewidths, dendrogram
120+
custom facecolor, medium fontweight annotations'
117121
- id: DE-03
118122
name: Data Storytelling
119123
score: 4
120124
max: 6
121125
passed: true
122-
comment: 'Injected patterns create a story: Sales strong early, Engineering
123-
strong late, Finance stable, HR dip mid-year'
126+
comment: Data patterns are intentional and visible (Sales first-half, Engineering
127+
second-half, Finance stability, HR dip); clustering groups similar departments
124128
spec_compliance:
125-
score: 14
129+
score: 15
126130
max: 15
127131
items:
128132
- id: SC-01
129133
name: Plot Type
130134
score: 5
131135
max: 5
132136
passed: true
133-
comment: Correct heatmap type via seaborn clustermap
137+
comment: Correct heatmap using seaborn clustermap variant
134138
- id: SC-02
135139
name: Required Features
136140
score: 4
137141
max: 4
138142
passed: true
139143
comment: Diverging colormap, cell annotations, colorbar legend, logical row
140-
ordering via clustering
144+
ordering via clustering — all present
141145
- id: SC-03
142146
name: Data Mapping
143147
score: 3
144148
max: 3
145149
passed: true
146-
comment: Departments as rows, months as columns, performance scores as values
150+
comment: X=months (columns), Y=departments (rows), values mapped to color
151+
intensity
147152
- id: SC-04
148-
name: Title & Legend
149-
score: 2
153+
name: Title Format
154+
score: 3
150155
max: 3
151156
passed: true
152-
comment: Title format correct; colorbar serves as legend; Y-axis label absent
157+
comment: heatmap-basic · seaborn · pyplots.ai correct; colorbar serves as
158+
legend
153159
data_quality:
154160
score: 14
155161
max: 15
@@ -159,30 +165,31 @@ review:
159165
score: 5
160166
max: 6
161167
passed: true
162-
comment: Shows variation, patterns, clustering — but could include more extreme
163-
outliers
168+
comment: Shows variation, patterns, high/low values, and clustering; could
169+
show a few more extreme outlier patterns
164170
- id: DQ-02
165171
name: Realistic Context
166172
score: 5
167173
max: 5
168174
passed: true
169-
comment: 'Genuine business scenario: department performance by month'
175+
comment: Monthly department performance metrics — plausible business scenario
176+
with real department names
170177
- id: DQ-03
171178
name: Appropriate Scale
172179
score: 4
173180
max: 4
174181
passed: true
175-
comment: Performance scores 5-95 are realistic
182+
comment: Performance scores 5-95 are realistic for a 0-100 metric
176183
code_quality:
177-
score: 9
184+
score: 10
178185
max: 10
179186
items:
180187
- id: CQ-01
181188
name: KISS Structure
182189
score: 3
183190
max: 3
184191
passed: true
185-
comment: Clean importsdataplotsave flow
192+
comment: Clean ImportsDataPlotSave flow, no functions/classes
186193
- id: CQ-02
187194
name: Reproducibility
188195
score: 2
@@ -194,36 +201,35 @@ review:
194201
score: 2
195202
max: 2
196203
passed: true
197-
comment: Only matplotlib, numpy, seaborn imported
204+
comment: Only matplotlib.pyplot, numpy, seaborn — all used
198205
- id: CQ-04
199206
name: Code Elegance
200-
score: 1
207+
score: 2
201208
max: 2
202209
passed: true
203-
comment: Manual ScalarMappable colorbar after setting cbar_pos=None is slightly
204-
verbose
210+
comment: Appropriate complexity, intentional data patterns, clean organization
205211
- id: CQ-05
206212
name: Output & API
207213
score: 1
208214
max: 1
209215
passed: true
210-
comment: Saves as plot.png, no deprecated functions
216+
comment: Saves as plot.png with dpi=300, bbox_inches=tight
211217
library_features:
212-
score: 9
218+
score: 10
213219
max: 10
214220
items:
215221
- id: LM-01
216222
name: Idiomatic Usage
217-
score: 4
223+
score: 5
218224
max: 5
219225
passed: true
220-
comment: Good use of sns.clustermap and sns.diverging_palette; manual colorbar
221-
handling is less idiomatic
226+
comment: Expert use of sns.clustermap with annot, fmt, cmap, center, cbar_kws,
227+
cbar_pos, dendrogram_ratio
222228
- id: LM-02
223229
name: Distinctive Features
224230
score: 5
225231
max: 5
226232
passed: true
227-
comment: sns.clustermap with hierarchical clustering is a distinctive seaborn
228-
feature not easily replicated elsewhere
229-
verdict: REJECTED
233+
comment: sns.clustermap integrates hierarchical clustering + heatmap + dendrogram
234+
— a feature unique to seaborn
235+
verdict: APPROVED

0 commit comments

Comments
 (0)