Chcę utworzyć wykres liniowy z wieloma seriami z D3 na podstawie tego example. Moim problemem jest to, że niektóre wartości są brakuje:Schemat wielu serii (D3) z brakującymi wartościami
y x1 x2 x3
1 0.8 0.7
2 0.9 0.7
3 0.9 1.2 0.7
4 1.1 0.7
5 0.8 1.1 2.7
6 0.9 1.2 2.6
7 1.3 0.8
Chcę uzyskać następujący wykres:
Brakujące punkty na beginnig lub na końcu powinna być pominięta. Mogę to osiągnąć dzięki
Jeśli jednak w linii brakuje niektórych punktów, linia nie powinna być przerywana. Z powyższym kodem zielona linia (x1) zatrzymuje się na y = 3 i trwa na y = 5. Ale chcę mieć te punkty połączone.
Bez użycia line().defined()
, wszystkie brakujące punkty były traktowane tak, jakby ich wartość wynosiła 0
.
Oto kod, kiedyś znaleźć sposób, aby wdrożyć tę funkcję:
myślę, że to nie jest rozwiązanie dla mnie, aby zastąpić brakujące punkty w tablicy danych przed przekazaniem go do moja funkcja wykresów, ponieważ muszę pokazywać wartości w legendzie i etykietkach narzędzi i nie mogę tutaj wyświetlać obliczonych wartości. Na przykład, jeśli poruszę się myszą przez y = 4, w legendzie powinien pojawić się x1:-- x2:1.1 x3:0.8
(x1 nie ma tu żadnej wartości). Również (rzeczywiste) punkty powinny być wyświetlane jako kółka. Nie chcę również mieć dwóch tabel danych w pamięci (jedna z rzeczywistymi danymi pomiarowymi, a druga z rozszerzonymi danymi dla linii wykresu).
Dla części, gdzie chcesz przewód do połączenia, jeśli jej brak wartości w środku i nie mogą być podłączone, jeśli jej brakuje jej wartości z przodu lub z tyłu: Może być, jeśli możesz przeglądać dane i znaleźć pierwszą i ostatnią zdefiniowaną wartość dla każdej kolumny X *, a następnie w zdefiniowanej (funkcja (d, i) {jeśli (i x * Defined [Last]) return false, else return true;}) –
Yogesh
Hi @stofl, czy mógłbyś wskazać, która sekcja kodu umożliwia brakujące wartości, które należy traktować jako 0. Walczę, aby to się stało. Jak dotąd po prostu nie pojawiają się na wykresie. Dzięki, – DaRoGa
Różnica między funkcją "line1" (linia 12) i 'line2' (linia 16). O ile pamiętam, funkcja 'x()' w linii 13 zwróciła '0', gdy wartość wynosi' null'. – stofl