Skip to content

Commit c5cb1cd

Browse files
feat(seaborn): implement line-filled (#2656)
## Implementation: `line-filled` - seaborn Implements the **seaborn** version of `line-filled`. **File:** `plots/line-filled/implementations/seaborn.py` --- :robot: *[impl-generate workflow](https://github.com/MarkusNeusinger/pyplots/actions/runs/20595332251)* --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 5b2a568 commit c5cb1cd

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
""" pyplots.ai
2+
line-filled: Filled Line Plot
3+
Library: seaborn 0.13.2 | Python 3.13.11
4+
Quality: 92/100 | Created: 2025-12-30
5+
"""
6+
7+
import matplotlib.pyplot as plt
8+
import numpy as np
9+
import seaborn as sns
10+
11+
12+
# Data - Daily website traffic over 60 days
13+
np.random.seed(42)
14+
days = np.arange(60)
15+
# Simulate website traffic with trend and weekly pattern
16+
base_traffic = 5000 + days * 50 # Upward trend
17+
weekly_pattern = 800 * np.sin(2 * np.pi * days / 7) # Weekly cycle
18+
noise = np.random.normal(0, 300, size=60)
19+
visitors = base_traffic + weekly_pattern + noise
20+
visitors = np.maximum(visitors, 0) # Ensure non-negative
21+
22+
# Create plot (4800x2700 px)
23+
fig, ax = plt.subplots(figsize=(16, 9))
24+
25+
# Use seaborn's lineplot for the line
26+
sns.lineplot(x=days, y=visitors, ax=ax, color="#306998", linewidth=3, label="Daily Visitors")
27+
28+
# Fill the area under the curve
29+
ax.fill_between(days, visitors, alpha=0.4, color="#306998")
30+
31+
# Labels and styling
32+
ax.set_xlabel("Day", fontsize=20)
33+
ax.set_ylabel("Website Visitors", fontsize=20)
34+
ax.set_title("line-filled · seaborn · pyplots.ai", fontsize=24)
35+
ax.tick_params(axis="both", labelsize=16)
36+
ax.grid(True, alpha=0.3, linestyle="--")
37+
ax.legend(fontsize=16, loc="upper left")
38+
39+
# Set y-axis to start at 0 for proper area visualization
40+
ax.set_ylim(bottom=0)
41+
42+
plt.tight_layout()
43+
plt.savefig("plot.png", dpi=300, bbox_inches="tight")
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
library: seaborn
2+
specification_id: line-filled
3+
created: '2025-12-30T11:22:07Z'
4+
updated: '2025-12-30T11:28:43Z'
5+
generated_by: claude-opus-4-5-20251101
6+
workflow_run: 20595332251
7+
issue: 0
8+
python_version: 3.13.11
9+
library_version: 0.13.2
10+
preview_url: https://storage.googleapis.com/pyplots-images/plots/line-filled/seaborn/plot.png
11+
preview_thumb: https://storage.googleapis.com/pyplots-images/plots/line-filled/seaborn/plot_thumb.png
12+
preview_html: null
13+
quality_score: 92
14+
review:
15+
strengths:
16+
- Excellent visual clarity with properly sized text elements and good color choice
17+
- Data scenario (website traffic) is realistic and demonstrates the filled line
18+
concept well
19+
- Clean KISS code structure following all conventions
20+
- 'Properly implements all spec requirements: semi-transparent fill, visible line,
21+
matching colors, y=0 baseline'
22+
- Weekly cyclical pattern with upward trend makes the visualization interesting
23+
and informative
24+
weaknesses:
25+
- Axis labels could include units for full VQ-06 points (e.g., Website Visitors
26+
(count) or Day (number))
27+
- Data could show more variety (e.g., a notable spike or dip for a special event)
28+
to demonstrate range of values better
29+
- Fill is done with matplotlib fill_between rather than a seaborn-native approach

0 commit comments

Comments
 (0)