matplotlib / matplotlib/mplfinance

The use of `returnfig=True` creates multiple figures when using ipywidgets

Offen
#673 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Python
Sterne
4.4k
Forks
678
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**Describe the bug**
If you provide returnfig=True or use your own axes, updating the ipywidgets produces additional plots.

**To Reproduce**
this example uses 15 min klines, but that doesn't matter.

```python
@interact(
start_pos = widgets.FloatSlider(value=0, max=len(df.index) - 1 - 7 * 96, min=0, step=1),
length = widgets.FloatSlider(value=7 * 96, max=7 * 96, min=96, step=96),

)
def plot_func(start_pos, length):
start_pos, length = int(start_pos), int(length)
ldf = df.iloc[start_pos:start_pos + length]
print(ldf.index[0], ' - ', ldf.index[-1])
mpf.plot(ldf, style='yahoo', figsize=(20,5), returnfig=True)
#print([ str(ax) for ax in axlist])
```

**Expected behavior**
When using ipywidgets and updateing the slider, the reloading of the plot_func produces an additional figure each time you update the widget. This shouldn't be. When your don't use returnfig (or don't add ax and volume by your own figure) this behaviour does not accure.

jupyter lab
mplfinance 0.12.10b0

**Screenshots**
![image](https://github.com/matplotlib/mplfinance/assets/1568087/147b7e8d-c72e-4299-9f8f-0a0bb7201f3b)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Problem in JupyterLab mit der gezeigten plot_func, ipywidgets, mplfinance und returnfig=True. Beobachte zunächst die Figure-Erstellung, während die Schieberegler aktualisiert werden, und verfolge dann den Einstiegspunkt des Plottings und die Handhabung der Figure. Erledigt ist es, wenn wiederholte Widget-Aktualisierungen nur den aktuellen Plot hinterlassen, anstatt Figures hinzuzufügen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
jupyter, matplotlib, python
Bereich
data-visualization
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.