2017-06-22 2 views
1

Ich möchte einen Maßstab machen, der zwischen 50 und 100 linear ist, aber wenn ein Ausreißerwert unter 50 oder über 100 liegt, wird er auf einen Wert von entweder 50 oder 100 gezwungen, so dass er fällt nicht aus dem sichtbaren Bereich meines Diagramms. (Der Plan ist, dann diese Datenpunkte anders zu gestalten, so dass der Benutzer weiß, dass sie entweder mehr oder weniger als das, was sie zu sein scheint.)Lineare stückweise Skalierung in D3

enter image description here

Wie würde ich mich über eine lineare stückweise machen skalieren in D3 das tut das? Oder ist es einfacher, eine "Gatekeeper" -Funktion zu erstellen, die direkt vom y-Attribut des SVG aufgerufen wird, diese Nötigungen manuell ausführt und dann eine regelmäßig lineare Skala mit "In-Range" -Werten aufruft, so dass "out-of-range" "Werte werden überhaupt nie an die lineare lineare Skala gesendet?

Antwort

2

Ich denke, dass Sie dies komplizieren.

Ich bin sicher, dass Sie eine d3.linefunction verwenden, nur die Werte in der y-Accessor Kappe:

var line = d3.line() 
    .x(function(d) { return x(d.x); }) 
    .y(function(d) { 
    if (d.y > 150) return y(150); 
    else if (d.y < 50) return y(50); 
    else return y(d.y); 
    }); 
Verwandte Themen