Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[FEATURE]: minimum autorange window

Aperta
#7,770 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
42/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
javascript

Direzione di ricerca

Inizia tracciando la gestione esistente di yaxis.autorangeoptions, in particolare clipmin, clipmax, minallowed e maxallowed, e verifica in che modo Plotly.extendTraces e Plotly.relayout influenzano il comportamento di autorange durante lo streaming. Definisci l'API e verifica che autorange mantenga la finestra minima configurata quando i dati rimangono al suo interno, espandendosi abbastanza da includere i valori anomali e le regole di padding esistenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement feature P3 size: 5

Feature request: “minimum autorange window” (default range, expand only when data exceed bounds) for live graphs

Problem / Motivation

We are building a live (streaming) graph with Plotly.js. When using autorange: true, the y-axis can become too tightly zoomed around very small values. This makes it hard to follow the signal comfortably because the scale constantly re-adjusts to tiny changes.

At the same time, we need to see outliers immediately: if a value suddenly exceeds a threshold, the plot should expand so the outlier is visible and operators can react.

So we want a y-axis behavior like:

  • Default to a “stable” range (e.g. [-10, 10]) while data stay inside it (prevents over-zooming).
  • If any new data point goes below -10 or above 10, automatically expand the axis beyond that window (so outliers are visible).
  • In other words: do not shrink inside the window, but do expand outside of it.

Why current options don’t solve it

  • layout.yaxis.autorangeoptions.clipmin/clipmax cap the autorange result.
    They prevent the axis from expanding beyond the clip values, which is the opposite of what we need (we want expansion beyond the threshold).
  • autorangeoptions.minallowed/maxallowed (and axis-level allowed options) are hard limits / exact values and also do not provide “minimum window but expandable”.
  • The current workaround is to compute data min/max and call Plotly.relayout() repeatedly, but this creates boilerplate, can fight user interactions, and is easy to get wrong for multi-axis / overlay cases.

Proposed feature

Add an autorange option that enforces a minimum visible window while still allowing expansion when data exceed the window.

Possible API (one of these, open to better naming):

  • yaxis.autorangeoptions.minwindow: [-10, 10]
  • yaxis.autorangeoptions.minrange: 20 (minimum span)
  • or similar
Proposed semantics

When autorange: true:

  1. Compute normal autorange [amin, amax] from data (with existing padding rules).
  2. Enforce: the final range must include the data, and must be at least the configured minimum window/span.
    • If data are within the minimum window, use the minimum window exactly (stable view).
    • If data exceed the window, expand as needed to include the data (outliers become visible).
Examples

Given minwindow: [-10, 10]:

  • data in [-3, 5] -> range should be [-10, 10]
  • data in [-12, 5] -> range should expand to include -12 (e.g. [-12, 10] plus padding if applicable)
  • data in [-3, 22] -> range should expand to include 22

Minimal reproduction / demonstration

Current behavior with autorange: true in a streaming graph:

  • when values are close to 0, the axis zooms too tightly and keeps changing scale, making the chart hard to read.

Desired behavior:

  • keep a stable default range (e.g. [-10, 10]) until thresholds are exceeded, then expand.

(If maintainers want, I can provide a CodePen reproducing the streaming case using Plotly.extendTraces.)

Additional notes

This feature would be especially valuable for:

  • live monitoring dashboards
  • industrial / IoT telemetry
  • finance signals with mostly small fluctuations but occasional spikes

It’s conceptually related to clipmin/clipmax, but with inverse behavior:

  • clip* = “don’t expand past these limits”
  • minwindow = “don’t shrink inside these limits, but expand past them when necessary”
  • or you can add more values in autorangeoptions: include
Lingua principale
JavaScript
Stelle
18.3k
Fork
2k
Merge medio
2g 10h
PR unite (30g)
30

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di plotly/plotly.js

Tutte le issue di plotly/plotly.js

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.