it-swarm.com.de

d3.scale.linear () vs d3.scaleLinear ()

Hallo, ich suche in der Dokumentation nach Skalen und es zeigt ein Format wie dieses var x = d3.scaleLinear([10,130]).range([0,960]) Ich finde das seltsam, weil die meisten Beispiele , die ich online sehe, so etwas verwenden Dies:

var x = d3.scale.linear().domain([10,130]).range([0,960]) und es funktioniert.

Wenn ich var x = d3.scaleLinear([10,130]).range([0,960]); benutze, erhalte ich eine Fehlermeldung wie

TypeError: d3.scaleLinear ist keine Funktion

Warum gibt es Ihrer Meinung nach eine Diskrepanz zwischen den Beispielen in der Dokumentation und dem, was ich in den Beispielen online sehe? Vielleicht verstehe ich nicht, wie man Dokumentation liest.

EDIT: Dies ist die aktuelle Dokumentation für Waagen.

29
jack blank

Die Dokumentation, die Sie sich ansehen, bezieht sich auf ein Plugin für D3 - wie es installiert wird, wird weiter unten auf derselben Seite beschrieben. Es wird irgendwann Teil der nächsten Hauptversion von D3 sein.

7
Lars Kotthoff

Um eine lineare Skala mit d3.js zu erstellen Version 3, verwenden Sie API d3.scale.linear()

und um eine lineare Skala mit Version 4 und 5 zu erstellen, verwenden Sie API d3.scaleLinear()

API-Referenzen zum Erstellen einer linearen Skala für beide Versionen finden Sie hier:

v3.x scale.linear

v4.x scaleLinear

51
Hina Dawood

Sie machen genau dasselbe, aber es ist nur eine Codeänderung, die D3.js Von Version nach Version 4 passiert ...

Also ist linear keine Eigenschaft des Skalenobjekts von d framework mehr ...

stattdessen ist es Teil von d3 mit camelCase Syntax ...

Also d3.jsv benutze d3.scale.linear()

und um eine lineare Skala mit v4 zu erstellen, benutze stattdessen d3.scaleLinear() ...

Version 3:

d3.scale.linear ()

Erstellt eine neue lineare Skala mit der Standarddomäne [0,1] und dem Standardbereich [0,1]. Daher entspricht die standardmäßige lineare Skala der Identitätsfunktion für Zahlen. Beispiel: linear (0,5) gibt 0,5 zurück.

Version 4:

d3.scaleLinear ()

Erstellt eine neue fortlaufende Skala mit der Einheitendomäne [0, 1], dem Einheitenbereich [0, 1], dem Standardinterpolator und deaktivierter Klemmung. Lineare Skalen sind eine gute Standardauswahl für kontinuierliche quantitative Daten, da sie proportionale Unterschiede beibehalten. Jeder Bereichswert y kann als Funktion des Domänenwerts x ausgedrückt werden: y = mx + b.

5
Alireza

Wie von Hina angegeben, wird d3.scale.linear () in D3 3.0 verwendet, und d3 4.0 hat die flache Namespace-Konvention übernommen. Hier ist ein Ausschnitt aus der Zusammenfassung des d3-Changelogs

Wenn Sie sich nicht für Modularität interessieren, können Sie diese Änderung meist ignorieren und weiterhin das Standardpaket verwenden. Die Übernahme von ES6-Modulen hat jedoch eine unvermeidbare Konsequenz: Jedes Symbol in D3 4.0 hat jetzt einen flachen Namespace anstelle des verschachtelten in D3 3.x. Zum Beispiel ist d3.scale.linear jetzt d3.scaleLinear, ...

Quelle: https://github.com/d3/d3/blob/master/CHANGES.md

BEARBEITEN: Vergessen zu erwähnen - um Ihren Fehler zu beheben, müssen Sie möglicherweise den Link oder die Datei, die Sie in Ihrem Programm haben, auf d3 aktualisieren. Ich rufe es direkt von der Website mit:

<script src="https://d3js.org/d3.v4.min.js"></script>
2
David Israwi