[Bug] dataShadow should consider axis.min/axis.max when drawing
- Dominant language
- TypeScript
- Stars
- 67.3k
- Forks
- 19.8k
- Avg merge
- 15h 17m
- Merged PRs (30d)
- 5
Description
### Version
5.5.0
### Link to Minimal Reproduction
https://echarts.apache.org/examples/en/editor.html?code=PYBwLglsB2AEC8sDeAoWsAeBBDEDOAXMmurGAJ4gCmRA5JALZW0A0J6DE0RAjAOw8ADIIBMAZhHCpbUrAYBDDLwEBWABx8AbHynCSAXxmxyOfEVSzO3WAFoeRjot4GjAE3lh5ALWDAGRAG12Yll0Cmo6PAAbCFcqACdWYPR4-WgAcyoAWWA4ump4gGMqaDBaYP0SAF0jPASIKkJYINkLUOh5JjoAEQ95WABlAAt5V2AAd1gE-OB42HdPJND5vsDk0gD-HhEeABYJXUEWWEEAOj4VGvX0TYFxAE4D3WOzy4dQ2-3Nfclnk9ORG9rs0tiI1I9ftITldljctmI9k8oTYzoCYbDPmIxBDDscUacgbCQQIxJosZDhHizhcqut0bJwjRYLQYtBmBVqih9ABuIA
### Steps to Reproduce
1. Go to minimal reproduction link or create chart with following options:
```option = {
xAxis: {
type: 'time',
min: 1710023200000,
max: 1715876700000
},
yAxis: {
min: -1,
max: 1
},
dataZoom: [
{
type: 'slider',
rangeMode: 'percent'
}
],
series: [
{
name: 'Data Shadow error data',
data: [
[1712143200000, 0.75],
[1712393200000, 0.5],
[1712643200000, 0.25],
[1712893200000, 0],
[1713143200000, -0.25],
[1713393200000, -0.5],
[1713633200000, -0.75]
],
type: 'line'
}
]
};
```
2. Run chart
### Current Behavior
Data shadow at the bottom does not match data distribution on chart.
It seems not to respect min and max values on axis.

### Expected Behavior
Data shadow should consider axis.min/axis.max when drawing.
Data shadow for given chart should look like that:

### Environment
```markdown
- OS: any
- Browser: any
- Framework: any
```
### Any additional comments?
Possible workaround is to add artifical data to series with axis.min and axis.max and NaN/undefined as a value
For given example data series would be:
```
...
data: [
[1710023200000, NaN],
[1712143200000, 0.75],
[1712393200000, 0.5],
[1712643200000, 0.25],
[1712893200000, 0],
[1713143200000, -0.25],
[1713393200000, -0.5],
[1713633200000, -0.75],
[1715876700000, NaN],
]
...
```
But this workaround will only work after merge of: https://github.com/apache/echarts/pull/16978
Contributor guide
Research direction
Start by running the linked minimal reproduction with the specified time and value-axis bounds, then trace the dataShadow drawing path and its use of axis.min and axis.max. Compare the shadow with the chart's data distribution and the expected screenshot. Done means the shadow respects the configured axis bounds without requiring artificial endpoint data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100