2015-06-01 19 views
5

Pracuję nad projektem, w którym punkty danych są wizualizowane na wykresie rozrzutu za pomocą d3. Ponieważ jest to aplikacja internetowa, region jest ograniczony, a wiele punktów pokrywa się. Łącznie jest to 20k punktów, a ja pozwalam użytkownikom powiększać pędzlem (i jego zasięgiem) na regiony, ale nawet przy powiększeniu nadal istnieje olbrzymie nakładanie się punktów. Przykładem takiej sytuacji:d3 Najlepsze praktyki do wizualizacji danych?

enter image description here

Jakie są dobre sposoby, aby nadal wizualizacji punkty bazowe, w celu zwiększenia widoczności lub postrzeganie punktów? Myślałem o tym, że mogę użyć przejrzystości, ale nie wiem, czy to by to zrobiło.

Warto zauważyć, że wszystkie punkty reprezentują geny, więc ich grupowanie może nie być logiczne pod względem reprezentacji.

+0

Czy dane wejściowe naprawdę dwuwymiarowa, czy ty wystające> 2 wymiary do 2-wymiarowej rozrzutu? –

+0

@FaKeller To naprawdę jest 2d dane – Gooey

+0

OK, właśnie zaktualizowałem odpowiedź poniżej za pomocą innej techniki wizualizacji. Jeśli to nie jest to, czego szukasz, proszę podać więcej informacji na temat * celu * wizualizacji z ** perspektywy użytkownika **. Jakie informacje powinien widzieć użytkownik? Jak on analizuje? Jakie wnioski może on wyciągnąć? –

Odpowiedz

4

Proponuję wypróbować d3's fisheye plug-in. Pozwala na powiększanie i zniekształcanie skali za pomocą myszy pozwalającej na powiększanie obszarów.

można zobaczyć przykład niego stosować z wykresu rozrzutu/bubble dolnym na stronie tutaj: http://bost.ocks.org/mike/fisheye/

enter image description here

Ponadto, jeśli masz pokrywają chciałbym zwiększyć przezroczystość, dzięki czemu można zobaczyć które punkty mają wiele nakładających się punktów, a nie punktów.

Oto wykres przykład z bardzo klastrowych punktów, które stworzyłem wykorzystując zarówno fisheye i krycie: http://crclayton.com/projects/fisheye/

To także pozwala się unosić nad poszczególnymi punktami, aby zobaczyć etykietkę zawierającą więcej szczegółów o nich.

enter image description here

+0

Bardzo interesujące. Nigdy nie słyszałem o czymś takim. Jedno pytanie pojawia się jednak w mojej głowie: jak dobrze można to połączyć z wyborem pędzla, ponieważ szczotkowanie wymaga poruszenia myszą? – Gooey

+0

Używam "rybiego oka" jako raczej alternatywy dla szczotek niż czegoś oprócz tego, szczerze mówiąc. Wydaje mi się, że w tym przypadku, podobnie jak w pierwszej kolejności, mówiono o przejrzystości, a usunięcie granic punktów pozwoliłoby osiągnąć coś rozsądnego. –

+0

Zastanawiałem się, czy rzeczywiście przełączać się między tymi dwoma i na przykład, gdy tylko ktoś zacznie przeciągać mysz, aby ją wyszczotkować, wyłączyć rybie oko. Zajmę się tym dzisiaj – Gooey

4

Jeśli liczba punktów danych jest przedmiotem zainteresowania, można uzyskać klastra punktów (po stronie klienta/serwera). Ten wzorzec jest zazwyczaj wyświetlany, jeśli mapy mają zbyt wiele znaczników (example cluster map).


Edit:

ja nadal nie jestem pewien, czy idę w dobrym kierunku. Aby zwizualizować ilość punktów, można użyć wizualizacji 3D. Oto pomysł wzięty z projektu Software Cities:

enter image description here

Można w zasadzie czyni położenie punktów na płaszczyźnie i tworzyć pionowe cylindry - więcej punktów w tym samym miejscu, tym wyższa cylinder.

+0

Nie jestem pewien, czy tworzenie klastrów miałoby sens w moim przypadku. Zapomniałem o tym wspomnieć, zaktualizowałem mój post. – Gooey

+1

@Gooey Rozproszony podział jest nadal rozsądną opcją, jak w [tym przykładzie] (http://www.gibmetportal.gi/images/example_scatter_plot.jpg), który używa sześciokątnych pojemników, ale prostokąty są również oczywiście opcją. W przeciwieństwie do powyższej przykładowej mapy klastrowej, rozproszony podział stosuje jednolitą siatkę. Twój pomysł użycia przezroczystości jest w pewnym stopniu równoznaczny z opcją binningu, ponieważ folie będą się sumować tworząc kolorystykę termiczną. Jednak binning poprawia wydajność, ponieważ przeglądarka nie musi renderować tak wielu pojedynczych węzłów. – meetamit

+0

@Gooey, aby rozwiązać problem konieczności udostępnienia poszczególnych punktów (genów), możesz zastosować powiększanie, a gdy poziom powiększenia jest wystarczająco wysoki, zamień pojemniki na rzeczywiste punkty. – meetamit