2013-03-06 21 views
20

Używam d3.js do utworzenia prostego wykresu liniowego. Chcę wiedzieć, czy istnieje sposób tworzenia "dziur" na wykresie, to znaczy, jeśli linia może zostać przerwana lub przecięta, gdy nie ma dostępnych danych.Rysowanie nieciągłych linii za pomocą d3

Zajmuję się albo usunięciem miejsc, których nie potrzebuję z domeny, albo ustawienie wagi linii na 0 w określonych segmentach, ale nie mogę znaleźć sposobu na wykonanie którejkolwiek z nich.

Dzięki za pomoc!

Odpowiedz

43

Generator D3 line ma wbudowaną funkcję do wykonania właśnie tego, line.defined. Możesz użyć tej funkcji do kontrolowania miejsca zdefiniowania linii i jej braku (np. Gdzie brakuje brakujących danych). Jeśli chcesz, aby twoja linia była niezdefiniowana, ilekroć druga wartość w tablicy punktów jest wartością NaN javascript, możesz na przykład:

line.defined(function(d) { return !isNaN(d[1]); }); 

Here to dobry przykład tego działania.

+0

Twój przykład nie zadziała (zgodnie z przeznaczeniem), ponieważ jeśli 'd' ma wartość' null', funkcja nigdy nie zostanie wywołana lub nie będzie w stanie określić, gdzie znajduje się niezdefiniowana pozycja (na osi X, np.). W kodzie blokowym użytym kodem jest 'return d.y! = Null'. – Rouby

+0

Dzięki @Rouby. Zaktualizowałem odpowiedź na obecny przykład z dokumentacji API. – Josh

Powiązane problemy