plotly / plotly/plotly.js

error with array buffer allocation failure

Offen
#5,278 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug P3
Vorherrschende Sprache
JavaScript
Sterne
18.3k
Forks
2k
Ø Merge
2 T. 12 Std.
Gemergte PRs (30 T.)
28

Beschreibung

Describe your context
Steps to setup my environment

conda create -n test python=3.8
conda activate test
pip install dash==1.17.0
pip install plotly==4.12.0
pip install numpy==1.18

My pip list

Brotli               1.0.9
certifi              2020.11.8
click                7.1.2
dash                 1.17.0
dash-core-components 1.13.0
dash-html-components 1.1.1
dash-renderer        1.8.3
dash-table           4.11.0
Flask                1.1.2
Flask-Compress       1.8.0
future               0.18.2
itsdangerous         1.1.0
Jinja2               2.11.2
MarkupSafe           1.1.1
numpy                1.18.0
pip                  20.2.4
plotly               4.12.0
retrying             1.3.3
setuptools           49.6.0.post20201009
six                  1.15.0
Werkzeug             1.0.1
wheel                0.35.1
wincertstore         0.2

My System

OS: Win10 Pro
Browser: Chrome v86.0.4240.193
NodeJS v12.16.2

Describe the bug
I am getting Array buffer allocation failed error when I try to generate a 3D plot with a huge number of data points in it.
Here is my code to reproduce the error when using n=2500

import dash
import dash_core_components as dcc
import dash_html_components as html
import numpy as np
import plotly.graph_objs as go


def get_figure(n):
    x = np.linspace(-100, 100, n)
    y = np.linspace(-100, 100, n)
    xx, yy = np.meshgrid(x, y)
    r = np.sqrt(xx**2 + yy**2)
    zz = np.sin(r) * np.cos(xx)
    return go.Figure(
        data = go.Surface(z=zz),
        layout=dict(width=600, height=600))


app = dash.Dash(__name__, suppress_callback_exceptions=True)

server = app.server
app.layout = html.Div(
    dcc.Graph(
        figure=get_figure(n=2500)
    )
)

if __name__ == '__main__':
    app.run_server(debug=True)

image

Expected behavior
Here is how it looks when I lower the value n, to n=800. I expect dash to render the 3D plot without a problem at n>=2500 but it gives me the Array buffer allocation failed error.

image

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

Beginne mit der bereitgestellten Python/Dash-Reproduktion und vergleiche n=800 mit n=2500 im Browser. Verfolge den durch dcc.Graph ausgelösten Rendering-Pfad der 3D-Oberfläche und den gemeldeten Fehler Array buffer allocation failed; als abgeschlossen gilt die Aufgabe, wenn der Fall n=2500 ein definiertes, verifiziertes Ergebnis anstelle eines nicht behandelten Allokationsfehlers hat.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, numpy, python
Bereich
data-visualization, frontend, performance
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.