De methode om een grafiek opnieuw te tekenen wanneer gegevens verandert, hangt sterk af van de grafiekbibliotheek die u gebruikt. Er is geen enkel universeel antwoord. De algemene principes zijn echter vergelijkbaar in de meeste bibliotheken:
1. Update de gegevensbron:
Eerst moet u de onderliggende gegevens wijzigen die de grafiek gebruikt. Dit kan inhouden:
* De volledige dataset vervangen: Als uw gegevens volledig verandert, vervangt u waarschijnlijk de bestaande gegevensarray of het object door een nieuwe.
* Bestaande gegevens wijzigen: Als slechts delen van de gegevens wijzigen, werkt u de specifieke elementen in uw gegevensarray of object bij.
2. Trigger een redraw:
Dit is waar de specifieke hitlijstenbibliotheek in het spel komt. Hier zijn voorbeelden voor enkele populaire bibliotheken:
* chart.js: Chart.js verwerkt meestal automatisch updates als u de gegevens rechtstreeks in de eigenschap `Data` van de grafiekconfiguratie wijzigt. Voor meer complexe updates moet u echter misschien `chart.update ()` bellen om een redraw expliciet te activeren.
`` `JavaScript
// Ervan uitgaande dat 'Mychart' uw kaart is
mychart.data.datasets [0] .Data =[10, 20, 30, 40, 50]; // Update gegevens
mychart.update (); // Force Redraw
`` `
* d3.js: D3.JS is declaratief, wat betekent dat u het uiterlijk van de grafiek beschrijft op basis van de gegevens. Om opnieuw te tekenen, moet u de code opnieuw uitvoeren die de grafiekelementen maakt, met behulp van de bijgewerkte gegevens. Dit omvat vaak het gebruik van `selectall ()` om elementen te selecteren en vervolgens hun attributen bij te werken op basis van de nieuwe gegevens. Dit is aanzienlijk meer handmatig dan andere bibliotheken.
`` `JavaScript
// Voorbeeld d3.js update (vereenvoudigd):
d3.Select ("#mychart") // selecteer grafiekcontainer
.Selectall ("rect") // Selecteer rechthoeken (bijvoorbeeld in een staafdiagram)
.Data (newData) // Bind nieuwe gegevens
.Attr ("hoogte", d => d * 10); // updatehoogte op basis van nieuwe gegevens
`` `
* Highcharts: Net als chart.js wordt highcharts vaak automatisch bijgewerkt als u de gegevens rechtstreeks wijzigt. `Chart.Redraw ()` is echter een betrouwbare methode om een hertocht expliciet te forceren.
`` `JavaScript
// Ervan uitgaande dat 'Chart' uw Highcharts Chart -instantie is
grafiek.Series [0] .setData ([10, 20, 30, 40, 50]);
chart.Redraw ();
`` `
* plot: Gebruikt plotly de `plotly.react` of` plotly.update` methoden om de grafiek opnieuw te tekenen met bijgewerkte gegevens. `Plotly.react` vervangt de gegevens en lay -out van de grafiek volledig, terwijl` plotly.update` alleen opgegeven sporen of attributen bijwerkt.
`` `JavaScript
Plotly.react ('myDiv', {// 'mydiv' is de container -ID van de grafiek
X:[1,2,3],
Y:[4,5,6]
});
`` `
* Leiders: Recharts, een op React gebaseerde grafiekbibliotheek, werkt op dezelfde manier als chart.js:u werkt de gegevens bij die zijn doorgegeven aan de grafiekcomponent bij en de component-herwaarderingen automatisch.
3. Behandel grote datasets efficiënt:
Voor zeer grote datasets kan het herhaaldelijk herschikken van de hele grafiek traag zijn. Overweeg deze optimalisaties:
* Incrementele updates: In plaats van de hele grafiek opnieuw te tekenen, werkt u alleen de onderdelen bij die zijn gewijzigd.
* Gegevensvirtualisatie: Maak alleen het zichtbare deel van de gegevens.
* geoptimaliseerde gegevensstructuren: Gebruik efficiënte gegevensstructuren om gegevenstoegang en manipulatie te versnellen.
Kortom, de exacte methode hangt af van de bibliotheek van uw gekozen grafieken. Raadpleeg de documentatie voor de juiste methode om uw grafieken bij te werken en opnieuw te tekenen. Maak altijd prioriteit aan het eerst bijwerken van de gegevens en gebruik vervolgens de specifieke hertekenfunctie van de bibliotheek. |