Plotly.Graph_Objects.Spredt

Plotly.Graph_Objects.Spredt
Avhengig av miljøet ditt, gjengir plottet figurene dine ved hjelp av en nettleser. En nettleser støtter SVG API og WebGL -gjengivelsesegenskaper. SVG -gjengivelse bruker vektor gjengivelse mens WebGL bruker lerret API, raskere gjengivelse ved hjelp av GPU og WebGL API.

Vanligvis vil du ikke legge merke til forskjellen mellom SVG og WebGL gjengitt figur med mindre du planlegger en stor mengde datasett. Dette er fordi WebGL er designet for å håndtere store mengder beregning ved å bruke GPU.

I denne artikkelen vil vi prøve å vise deg hvordan du bruker spredningsklassen fra plottly graf_objekter for å plotte en spredningsplott ved hjelp av webgl.

Plotting av 1 million poeng ved å bruke Plotly Express

Selv om plottly graf_objekter gir mye tilpasning og kontroll på lavt nivå, er det godt å forstå den raskeste og mest effektive metoden for å lage en gjengitt plott.

Det er her Plotly Express kommer inn. Ved hjelp av parameteren Render_Mode kan du opprette et spredt plot og fortelle plottly å bruke WebGL i stedet for SVG for å gjengi en figur.

Et eksempel er som vist i følgende:

Importer plotly.uttrykk som px
Importer numpy som NP
Importer pandaer som PD
n = 100000
df = pd.DataFrame (dikter (
x = np.tilfeldig.Randn (n),
y = np.tilfeldig.Randn (n)
))
Fig = px.spredning (df, x = 'x', y = 'y')
Fig.forestilling()

Den forrige koden oppretter en spredningsplott på 10000 poeng ved å bruke WebGL -gjengivende aktivering.

Bruke plottly graf_objekter

Heldigvis, i plottly graf_objekter, kan vi bruke spredningsfunksjonen som bruker webgl som standard.

Eksempelkoden er som vist i følgende:

Importer plotly.Graph_Objects som GO
Importer numpy som NP
n = 100000
Fig = GO.Figur()
Fig.add_trace (
gå.Scattergl (
x = np.tilfeldig.Randn (n),
y = np.tilfeldig.Randn (n),
modus = 'markører'
)
)
Fig.forestilling()

Gjengivelse (SVG vs WebGL)

Som nevnt tilbyr WebGL en ytelsesfordel i forhold til SVG. Dette kan illustreres når du planlegger et stort datasett.

Eksempel 1: Bruke spredtgl

Importer plotly.Graph_Objects som GO
Importer numpy som NP
n = 10000000
Fig = GO.Figur()
Fig.add_trace (
gå.Scattergl (
x = np.tilfeldig.Randn (n),
y = np.tilfeldig.Randn (n),
modus = 'markører'
)
)
Fig.forestilling()

Den forrige koden gjengir på omtrent 3m 8.3sec.

Eksempel 2: Uten WebGL

Importer plotly.uttrykk som px
Importer numpy som NP
Importer pandaer som PD
n = 10000000
df = pd.DataFrame (dikter (
x = np.tilfeldig.Randn (n),
y = np.tilfeldig.Randn (n)
))
Fig = px.spredning (df, x = 'x', y = 'y')
Fig.forestilling()

Denne koden gjengir på omtrent 5 min 12.5 sek.

Husk at de tidligere verdiene er fra en gang, men ikke gjenspeiler fordelen med WebGL over SVG og omvendt.

Vi anbefaler at du gjør testen din som samsvarer med miljø- og beregningsbehov.

Konklusjon

I denne artikkelen illustrerte vi hvordan vi kan lage et spredningsplott ved hjelp av SVG og WebGL -gjengivelse i plotly.