Ich habe das Problem zu einem gewissen Grad gelöst, indem der Maximalwert
var data = [1,2,4/0,3,10,2,1,0/0,2,1]
var filtered = data.filter(a => !(a == Infinity || isNaN(a)))
var r = ['min', 'max'].map(name => Math[name]).map(f => f(...filtered))
new Dygraph(document.getElementById("demodiv"), data.map((d,i) => [i, d])
\t , {labels: ["Date", "series1"], valueRange:r});
<script src="http://dygraphs.com/dygraph-combined.js"></script>
<div id="demodiv"></div>
Wie Sie sehen precomputing, die Unendlichkeit, die wir bei x = 2 haben wird einfach ignoriert. Ich wünsche mir jedoch, dass das Diagramm es vertikal nach oben über das "Dach" hinaus zeigt, um die Unendlichkeit zu visualisieren. Ich musste es tun manuell
var data = [1,2,4/0,3,10,2,1,0/0,2,1]
var filtered = data.filter(a => !(a == Infinity || isNaN(a)))
var r = ['min', 'max'].map(name => Math[name]).map(f => f(...filtered))
// map infinities to large numbers. These nums are too large for the displayed range and did not participate in visible range definition
//var m = new Map(); m.set(Infinity, Number.MAX_VALUE); m.set(-Infinity, Number.MIN_VALUE) // min/max are too large for the Dygraph
var m = new Map(); m.set(Infinity, 1e7); m.set(-Infinity, -1e7)
data = data.map(a => m.get(a) || a)
new Dygraph(document.getElementById("demodiv"), data.map((d,i) => [i, d])
\t , {labels: ["Date", "series1"], valueRange:r});
<script src="http://dygraphs.com/dygraph-combined.js"></script>
<div id="demodiv"></div>
Dies macht jedoch ein anderes Problem: die Wertelabels auch Infinity
-1e7
umgewandelt werden. Wenn Sie mit der Maus über das Diagramm fahren, sehen Sie, dass der Wert 1e7
und nicht Infinity ist.