Skip to content

feat(seaborn): implement eye-diagram-basic#4978

Open
github-actions[bot] wants to merge 2 commits intomainfrom
implementation/eye-diagram-basic/seaborn
Open

feat(seaborn): implement eye-diagram-basic#4978
github-actions[bot] wants to merge 2 commits intomainfrom
implementation/eye-diagram-basic/seaborn

Conversation

@github-actions
Copy link
Contributor

Implementation: eye-diagram-basic - seaborn

Implements the seaborn version of eye-diagram-basic.

File: plots/eye-diagram-basic/implementations/seaborn.py

Parent Issue: #4561


🤖 impl-generate workflow

@claude
Copy link
Contributor

claude bot commented Mar 17, 2026

AI Review - Attempt 1/3

Image Description

The plot displays an eye diagram on a black background using the inferno colormap. Two wide-open eye shapes span 0–2 UI on the x-axis ("Time (UI)"). The y-axis shows "Voltage (V)" ranging from approximately −0.2 to 1.2. Bright yellow/white bands at the 0V and 1V signal levels indicate high trace density, while transitions between levels form the characteristic eye openings in dark black. The title reads "eye-diagram-basic · seaborn · pyplots.ai" in white text. Top and right spines are removed; bottom and left spines are gray. Subtle dashed reference lines appear at 0V and 1V. The overall visual is striking and professional.

Score: 0/100

Category Score Max
Visual Quality 0 30
Design Excellence 0 20
Spec Compliance 0 15
Data Quality 0 15
Code Quality 0 10
Library Mastery 0 10
Total 0 100

⛔ Auto-Reject: AR-05 — Library Not Used

Seaborn is not imported or used anywhere in this implementation. The file imports only matplotlib.pyplot, matplotlib.colors, numpy, and scipy.ndimage. There is zero seaborn usage — no import seaborn as sns, no sns.* plot calls. This is a pure matplotlib implementation mislabeled as seaborn.

Per AR-05 rules: seaborn implementations must use seaborn plotting functions (sns.histplot, sns.heatmap, sns.kdeplot, etc.), not just styling utilities.

Quality Assessment (for repair guidance only — not scored due to AR-05)

The visual output is actually excellent. If this were a matplotlib implementation, it would score well (~84/100). Key quality notes for the repair:

What works well (keep these):

  • Dark background with inferno colormap is visually striking
  • PowerNorm with gamma=0.35 creates good density contrast
  • Signal simulation is realistic (NRZ with noise, jitter, bandwidth limiting)
  • Font sizes explicitly set (title 24, labels 20, ticks 16)
  • Top/right spines removed, subtle reference lines
  • Good canvas utilization and layout
  • Title format correct

What must change:

  • Must use seaborn plotting functions. Options:
    • sns.histplot(x=all_time, y=all_voltage, bins=(400, 250), cmap='inferno', cbar=True) for 2D histogram
    • sns.kdeplot(x=all_time, y=all_voltage, fill=True, cmap='inferno', levels=...) for density
    • The 2D histplot approach is most faithful to the current visual

Strengths

  • Excellent signal simulation with realistic NRZ parameters (noise σ=5%, jitter σ=3%)
  • Striking dark-theme density visualization with custom PowerNorm
  • Professional layout with properly sized text and removed spines

Weaknesses

  • CRITICAL: Seaborn is not used at all — pure matplotlib implementation (AR-05 violation)
  • Missing optional eye height/width annotations (minor, spec says "optionally")

Issues Found

  1. AR-05 CRITICAL: Seaborn library not imported or used. Zero sns.* calls in the entire file.
    • Fix: Use sns.histplot() with bivariate (x, y) data to create the 2D density heatmap, or sns.kdeplot() for a KDE-based approach. Apply seaborn theming with sns.set_theme().

AI Feedback for Next Attempt

The implementation must use seaborn plotting functions — this is the single blocking issue. Use sns.histplot(x=..., y=..., bins=..., cmap='inferno') for the 2D density visualization instead of manual np.histogram2d + ax.imshow. Keep the excellent signal simulation, dark theme, and PowerNorm approach but route them through seaborn's API. Also consider sns.set_theme(style='dark') for idiomatic seaborn styling.

Verdict: REJECTED

@github-actions
Copy link
Contributor Author

❌ AI Review Failed

The AI review action completed but did not produce valid output files.

What happened:

  • The Claude Code Action ran
  • No quality_score.txt file was created
  • No review data was extracted

Action required:
Re-run the impl-review workflow manually:

gh workflow run impl-review.yml -f pr_number=4978

🤖 impl-review

@github-actions github-actions bot added the ai-review-failed AI review action failed or timed out label Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review-failed AI review action failed or timed out

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants