Skip to content

feat: add line-basic implementation (9 libraries)#511

Merged
MarkusNeusinger merged 33 commits intomainfrom
plot/line-basic
Dec 7, 2025
Merged

feat: add line-basic implementation (9 libraries)#511
MarkusNeusinger merged 33 commits intomainfrom
plot/line-basic

Conversation

@MarkusNeusinger
Copy link
Copy Markdown
Owner

Summary

Adds line-basic plot implementation.

Libraries

  • Merged: 9 (all libraries)
  • Not Feasible: 0

Links


🤖 Auto-generated by pyplots CI

claude Bot and others added 30 commits December 6, 2025 23:31
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #205
**Sub-Issue:** #260
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Simplified implementation following KISS principles (no
functions/classes)
- Uses LineSeries from highcharts_core
- Python Blue color scheme (#306998) with markers
- Renders to 4800x2700px PNG via Selenium/Chrome headless
- Data follows spec example: time [1-7], values [10,15,13,18,22,19,25]

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **letsplot** library.

**Parent Issue:** #205
**Sub-Issue:** #266
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/letsplot/line/line-basic/default.py`

## Changes
- Refactored to follow KISS style guidelines (simple sequential script)
- Uses example data from spec: time series with 7 data points
- Generates 4800x2700 px PNG with scale=3
- Uses Python Blue (#306998) from style guide
- Includes markers on data points for clarity
- Minimal theme with subtle grid

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **matplotlib** library.

**Parent Issue:** #205
**Sub-Issue:** #218
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/matplotlib/plot/line-basic/default.py`

## Changes
- Refactored to follow KISS style guidelines (simple sequential script)
- Uses PyPlots color palette (#306998 Python Blue)
- Applied recommended font sizes for 4800x2700px output
- No functions, classes, or type hints per plot-generator rules

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **altair** library.

**Parent Issue:** #205
**Sub-Issue:** #239
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/altair/line/line-basic/default.py`

## Features
- Basic line chart with trend visualization
- Uses style guide colors (Python Blue #306998)
- Proper font sizes (16pt labels, 20pt titles)
- Correct image dimensions (1600×900 base, 4800×2700 at
scale_factor=3.0)
- Optional markers at data points
- Automatic x-axis type detection (temporal vs quantitative)
- Alpha transparency and linestyle support (solid, dashed, dotted)
- Interactive tooltips
- Grid with 0.3 opacity for subtle visual guide

## Changes from existing implementation
- Updated default color to Python Blue per style guide
- Added alpha and linestyle parameters per spec
- Fixed image dimensions (was 800×450, now 1600×900)
- Added proper font sizing for high-resolution output

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **seaborn** library.

**Parent Issue:** #205
**Sub-Issue:** #222
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/seaborn/lineplot/line-basic/default.py`

## Changes
- Simplified implementation to follow KISS style (sequential code, no
functions)
- Uses Python Blue (#306998) from default style guide
- Follows 16:9 aspect ratio with proper font sizes (20pt for
labels/title, 16pt for ticks)
- Example data from spec: time series with 7 data points

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotnine** library.

**Parent Issue:** #205
**Sub-Issue:** #247
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotnine/line/line-basic/default.py`

## Changes
- Simplified implementation to follow KISS style guidelines
- Uses plotnine's grammar of graphics (ggplot) approach
- Line with data points using Python Blue color (#306998)
- 16:9 figure size as per style guide
- theme_minimal() for clean appearance

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **pygal** library.

**Parent Issue:** #205
**Sub-Issue:** #253
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/pygal/line/line-basic/default.py`

## Details
- Simple KISS-style implementation following project guidelines
- Uses data from spec example (time/value series)
- 4800x2700 px PNG output at proper resolution
- Follows pyplots color palette (Python Blue #306998)
- Clear axis labels and title

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotly** library.

**Parent Issue:** #205
**Sub-Issue:** #227
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotly/scatter/line-basic/default.py`

Uses `go.Scatter` with `mode="lines"` to create a basic line plot
following the spec. The plot displays time series data with Python Blue
(#306998) color and proper axis labels.

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **altair** library.

**Parent Issue:** #205
**Sub-Issue:** #326
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/altair/line/line-basic/default.py`

## Changes
- Simplified implementation following KISS principle
- Removed function wrapping, type hints, and docstrings
- Sequential script structure matching gallery examples
- Uses data from spec example
- Proper styling: Python Blue color, labeled axes, title, grid
- Output: 4800 × 2700 px PNG (via scale_factor=3.0)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotnine** library.

**Parent Issue:** #197
**Sub-Issue:** #247
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotnine/line/line-basic/default.py`

## Details
- Uses `geom_line()` and `geom_point()` to visualize a basic line plot
with data points
- Uses Python Blue (#306998) from the style guide color palette
- Correct dimensions: 4800 x 2700 px (16:9 aspect ratio)
- Simple KISS-style implementation following the gallery example pattern
- Line size of 2 and point size of 4 for clear visibility
- Includes minimal theming with `theme_minimal()`

## Verification
- Tested locally: script runs without errors
- Output image: 4800 x 2700 px PNG

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotly** library with KISS-style code.

**Parent Issue:** #197
**Sub-Issue:** #227
**Base Branch:** `plot/line-basic`

## Changes from Previous Attempt
- Rewrote implementation to follow KISS guidelines (no
functions/classes)
- Removed duplicate file from `scatter/` folder (line plot belongs in
`line/`)
- Added markers to match other library implementations
- Uses correct color from style guide (`#306998` - Python Blue)
- Proper font sizes per style guide (20pt labels, 16pt ticks)

## Implementation
- `plots/plotly/line/line-basic/default.py`

## Test Results
- Script executes successfully
- Output: `plot.png` (4800 x 2700 px) ✓
- Ruff format/lint: ✓

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #162
**Sub-Issue:** #330
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Uses Python Blue (#306998) color from style guide
- Proper axis labels (Time/Value) with readable font sizes
- Chart spacing configured for proper label visibility
- Markers enabled on data points with white borders
- Line width of 4px for clear visibility

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #162
**Sub-Issue:** #388
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Fixed window size (5000x3000) to ensure container screenshot produces
exactly 4800x2700 pixels as per style guide

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **altair** library.

**Parent Issue:** #162
**Sub-Issue:** #385
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/altair/line/line-basic/default.py`

## Details
- Basic line plot with data points for clarity
- Uses Python Blue (#306998) color scheme
- Properly sized axis labels (16pt) and title (20pt)
- Output: 4800 × 2700 px PNG (16:9 aspect ratio)
- Grid with subtle opacity (0.3)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **matplotlib** library.

**Parent Issue:** #162
**Sub-Issue:** #318
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/matplotlib/plot/line-basic/default.py`

## Changes
- Generates realistic time series data with trend and noise (30 data
points)
- Uses `ax.plot()` with markers for clear data point visibility
- Follows style guide: Python Blue (#306998), 16:9 aspect ratio, proper
font sizes
- Includes grid with subtle alpha for readability

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotly** library.

**Parent Issue:** #162
**Sub-Issue:** #384
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotly/scatter/line-basic/default.py`

## Changes
- Basic line plot using `go.Scatter` with `mode='lines'`
- Python Blue (#306998) color from style guide
- Centered title with proper font size (20pt)
- Axis labels with proper font sizes (20pt title, 16pt ticks)
- Subtle grid lines on both axes (rgba(0,0,0,0.1))
- Output size: 4800 × 2700 px (1600×900 with scale=3)
- Uses `plotly_white` template for clean appearance

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **altair** library.

**Parent Issue:** #162
**Sub-Issue:** #392
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/altair/line/line-basic/default.py`

## Changes
- Fixed chart dimensions to use 1600×900 (scales to 4800×2700 px)
- Line chart with points overlay using Python Blue (#306998)
- Proper axis labels and title with correct font sizes
- Grid enabled with 0.3 opacity

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **matplotlib** library.

**Parent Issue:** #162
**Sub-Issue:** #399
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/matplotlib/plot/line-basic/default.py`

## Changes
- Basic line plot with simulated monthly trend data
- Uses Python Blue color (#306998) per style guide
- 16:9 aspect ratio (4800x2700px target)
- Proper font sizes (20pt for labels/title, 16pt for ticks)
- Includes subtle grid and markers for data point clarity

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotnine** library.

**Parent Issue:** #162
**Sub-Issue:** #386
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotnine/line/line-basic/default.py`

## Details
- Uses Python Blue (#306998) from the style guide
- Line plot with point markers for data visibility
- Proper font sizing: title 20pt, axis labels 20pt, tick labels 16pt
- Output: 4800x2700px PNG at 300 DPI

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #162
**Sub-Issue:** #390
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Fixed categories to be strings (required by highcharts-core
validation)
- Adjusted font sizes for better readability at 4800x2700
- Simplified marker and line width configuration
- Used driver.save_screenshot for consistent image capture

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #162
**Sub-Issue:** #423
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Details
- Uses LineSeries from highcharts-core
- Renders chart via Selenium headless Chrome
- Downloads Highcharts JS inline to avoid CDN loading issues in headless
mode
- Output: 4800x2700px PNG as per style guide
- Uses Python Blue (#306998) color from palette

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #205
**Sub-Issue:** #430
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **matplotlib** library.

**Parent Issue:** #205
**Sub-Issue:** #419
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/matplotlib/plot/line-basic/default.py`

## Changes
- Uses pandas DataFrame with the exact example data from the spec
- Basic line plot with markers showing trend over time
- Follows matplotlib best practices (ax methods, tight_layout)
- Styled according to default-style-guide.md

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotly** library.

**Parent Issue:** #205
**Sub-Issue:** #403
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotly/scatter/line-basic/default.py`

## Changes
- Uses `go.Scatter` with `mode='lines'` for basic line chart
- Python Blue color (#306998) following style guide
- Proper axis labels and title with recommended font sizes
- 4800x2700 px output (via 1600x900 @ scale=3)
- Uses pandas DataFrame matching spec example data

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #205
**Sub-Issue:** #438
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Features
- Basic line plot with data points connected by lines
- Uses Python Blue color (#306998) from style guide
- Proper axis labels (Time on X-axis, Value on Y-axis)
- Title "Basic Line Plot"
- Markers enabled on data points
- Follows 4800x2700 px image dimensions requirement

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **letsplot** library.

**Parent Issue:** #205
**Sub-Issue:** #334
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/letsplot/line/line-basic/default.py`

## Changes
- Clean KISS implementation following style guide
- Uses Python Blue color (#306998) for line and points
- Proper 4800x2700 px output via ggsize(1600, 900) with scale=3
- Minimal theme with proper typography sizing

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **matplotlib** library.

**Parent Issue:** #205
**Sub-Issue:** #452
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/matplotlib/plot/line-basic/default.py`

## Changes
- Basic line plot implementation using matplotlib's `ax.plot()` method
- Uses Python Blue color (#306998) from the style guide
- Includes markers (8px) for data point visibility
- Follows spec data structure with time/value columns
- Proper axis labels, title, and grid styling

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #205
**Sub-Issue:** #455
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Fixed import path for LineSeries (from
`highcharts_core.options.series.area`)
- Set correct window size for 4800x2700 screenshot
- Clean KISS-style implementation following plot-generator guidelines

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **bokeh** library.

**Parent Issue:** #205
**Sub-Issue:** #232
**Base Branch:** `plot/line-basic`

## Implementation
- `plots/bokeh/line/line-basic/default.py`

## Changes
- KISS style: simple sequential script (no functions, no classes)
- Uses ColumnDataSource for data management
- Output: 4800x2700 PNG with proper styling (20pt title/labels, 16pt
ticks)
- Uses Python Blue (#306998) color from style guide
- Includes line with markers at data points

## Latest Fix (afa562e)
- **Removed webdriver-manager dependency**: Uses system chromedriver
directly instead of webdriver-manager
- **Added better headless flags**: `--headless=new` and `--disable-gpu`
for improved compatibility
- This approach is more reliable in CI environments where
Chrome/Chromium and chromedriver are pre-installed

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Markus Neusinger <2921697+MarkusNeusinger@users.noreply.github.com>
claude Bot and others added 3 commits December 7, 2025 20:42
## Summary
Implements `line-basic` for **letsplot** library.

**Parent Issue:** #205
**Sub-Issue:** #456
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/letsplot/line/line-basic/default.py`

## Details
- Uses `geom_line()` with `geom_point()` overlay for data point
visibility
- Python Blue (#306998) color for consistent styling
- Properly sized output (4800 × 2700 px via scale=3)
- Follows letsplot ggplot2-style grammar of graphics

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Markus Neusinger <2921697+MarkusNeusinger@users.noreply.github.com>
## Summary
Implements `line-basic` for **plotly** library.

**Parent Issue:** #205
**Sub-Issue:** #454
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/plotly/scatter/line-basic/default.py`

## Changes
- Uses `go.Scatter` with `mode="lines"` for line plot
- Python Blue (#306998) color as per style guide
- 4800x2700px output (1600x900 scaled 3x)
- Clean white template with subtle grid
- No legend for single series (per quality criteria)
- Appropriate font sizes for high resolution output

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
## Summary
Implements `line-basic` for **highcharts** library.

**Parent Issue:** #205
**Sub-Issue:** #485
**Base Branch:** `plot/line-basic`
**Attempt:** 1/3

## Implementation
- `plots/highcharts/line/line-basic/default.py`

## Changes
- Basic line plot implementation using LineSeries
- Uses Python Blue color (#306998) from style guide
- Proper axis labels (Time, Value) and title
- Markers enabled on data points
- Targets 4800x2700px resolution
- PNG export via Selenium/headless Chrome

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Copilot AI review requested due to automatic review settings December 7, 2025 21:14
@MarkusNeusinger MarkusNeusinger merged commit e1a2fe9 into main Dec 7, 2025
@MarkusNeusinger MarkusNeusinger deleted the plot/line-basic branch December 7, 2025 21:14
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 7, 2025

✅ Plot Tests Passed

Python 3.13 (required): passed

Compatibility: 3.12 3.13

Note: Only Python 3.13 is required to pass. Python 3.12 is tested for compatibility.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements the line-basic plot specification across all 9 supported visualization libraries, transitioning from the legacy function-based pattern to a simplified script-based implementation approach. The implementation adds basic line plots for visualizing trends and changes over continuous or sequential data.

Key changes:

  • Implements simplified script-based structure (removing create_plot() functions and if __name__ == "__main__" blocks)
  • Standardizes on Python Blue (#306998) for visual consistency across all libraries
  • Uses consistent sample data across all implementations (time: [1-7], value: [10, 15, 13, 18, 22, 19, 25])

Critical Issue: There is a duplicate plotly implementation at an incorrect location (plots/plotly/scatter/line-basic/) that must be removed.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
plots/seaborn/lineplot/line-basic/default.py Replaces function-based implementation with simplified script using seaborn's lineplot with markers
plots/pygal/line/line-basic/default.py Replaces function-based implementation with simplified script using pygal Line chart with custom styling
plots/plotnine/line/line-basic/default.py Replaces function-based implementation with simplified ggplot-style script with line and point geometries
plots/plotly/scatter/line-basic/default.py DUPLICATE IMPLEMENTATION - Should be removed; creates line plot in wrong directory with inconsistent styling
plots/plotly/line/line-basic/default.py Replaces function-based implementation with simplified script using Scatter trace with lines+markers mode
plots/matplotlib/plot/line-basic/default.py Replaces function-based implementation with simplified script using ax.plot with markers
plots/letsplot/line/line-basic/default.py Replaces function-based implementation with simplified ggplot-style script, removes unused element_line import
plots/highcharts/line/line-basic/default.py Replaces function-based implementation with simplified script using Selenium for PNG export
plots/bokeh/line/line-basic/default.py Replaces function-based implementation with simplified script using line and scatter glyphs with Selenium export
plots/altair/line/line-basic/default.py Replaces function-based implementation with simplified script combining line and point marks

Comment on lines +1 to +30
"""
line-basic: Basic Line Plot
Library: plotly
"""

import plotly.graph_objects as go


# Data
time = [1, 2, 3, 4, 5, 6, 7]
value = [10, 15, 13, 18, 22, 19, 25]

# Create plot
fig = go.Figure()
fig.add_trace(go.Scatter(x=time, y=value, mode="lines", line={"color": "#306998", "width": 3}))

# Layout
fig.update_layout(
title={"text": "Basic Line Plot", "font": {"size": 36}},
xaxis_title="Time",
yaxis_title="Value",
template="plotly_white",
showlegend=False,
xaxis={"title_font": {"size": 28}, "tickfont": {"size": 22}, "showgrid": True, "gridcolor": "rgba(0,0,0,0.1)"},
yaxis={"title_font": {"size": 28}, "tickfont": {"size": 22}, "showgrid": True, "gridcolor": "rgba(0,0,0,0.1)"},
margin={"l": 80, "r": 40, "t": 100, "b": 80},
)

# Save
fig.write_image("plot.png", width=1600, height=900, scale=3)
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate plotly implementation detected. There are two plotly implementations for line-basic:

  1. plots/plotly/line/line-basic/default.py (correct location)
  2. plots/plotly/scatter/line-basic/default.py (this file - incorrect location)

The implementation should only exist in plots/plotly/line/line-basic/default.py. This file at plots/plotly/scatter/line-basic/default.py should be removed as it's a duplicate with slightly different styling (line width 3 vs 2, larger font sizes, different margins).

Suggested change
"""
line-basic: Basic Line Plot
Library: plotly
"""
import plotly.graph_objects as go
# Data
time = [1, 2, 3, 4, 5, 6, 7]
value = [10, 15, 13, 18, 22, 19, 25]
# Create plot
fig = go.Figure()
fig.add_trace(go.Scatter(x=time, y=value, mode="lines", line={"color": "#306998", "width": 3}))
# Layout
fig.update_layout(
title={"text": "Basic Line Plot", "font": {"size": 36}},
xaxis_title="Time",
yaxis_title="Value",
template="plotly_white",
showlegend=False,
xaxis={"title_font": {"size": 28}, "tickfont": {"size": 22}, "showgrid": True, "gridcolor": "rgba(0,0,0,0.1)"},
yaxis={"title_font": {"size": 28}, "tickfont": {"size": 22}, "showgrid": True, "gridcolor": "rgba(0,0,0,0.1)"},
margin={"l": 80, "r": 40, "t": 100, "b": 80},
)
# Save
fig.write_image("plot.png", width=1600, height=900, scale=3)

Copilot uses AI. Check for mistakes.

# Create plot
fig = go.Figure()
fig.add_trace(go.Scatter(x=time, y=value, mode="lines", line={"color": "#306998", "width": 3}))
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent scatter mode in the duplicate plotly implementation. This version uses mode="lines" (line 15) which doesn't include markers, while the correct implementation at plots/plotly/line/line-basic/default.py uses mode="lines+markers" which properly includes both lines and markers for better data point visibility.

Suggested change
fig.add_trace(go.Scatter(x=time, y=value, mode="lines", line={"color": "#306998", "width": 3}))
fig.add_trace(go.Scatter(x=time, y=value, mode="lines+markers", line={"color": "#306998", "width": 3}))

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants