Histogramy i wykresy rozrzutu są świetnymi metodami wizualizacji danych i zależności między zmiennymi, ale ostatnio zastanawiałem się, jakich technik wizualizacji brakuje. Jak myślisz, jaki rodzaj fabuły jest najczęściej wykorzystywany?
Odpowiedzi powinny:
- Niezbyt często stosowane w praktyce.
- Bądź zrozumiały bez dużej ilości dyskusji w tle.
- Stosuj w wielu typowych sytuacjach.
- Dołącz powtarzalny kod, aby utworzyć przykład (najlepiej w języku R). Połączony obraz byłby miły.
Odpowiedzi:
Naprawdę zgadzam się z innymi plakatami: książki Tufte są fantastyczne i warte przeczytania.
Po pierwsze, chciałbym wskazać bardzo fajny samouczek na temat ggplot2 i ggobi z „Looking at Data” na początku tego roku. Poza tym chciałbym tylko podkreślić jedną wizualizację z R i dwa pakiety graficzne (które nie są tak szeroko stosowane jak grafika podstawowa, sieć czy ggplot):
Mapy cieplne
Naprawdę lubię wizualizacje, które potrafią obsługiwać dane wielowymiarowe, zwłaszcza dane szeregów czasowych. Przydadzą się do tego mapy cieplne . Jedną naprawdę fajną prezentował David Smith na blogu Revolutions . Oto kod ggplot dzięki uprzejmości Hadley:
Co kończy się mniej więcej tak:
RGL: Interaktywna grafika 3D
Kolejnym pakietem, którego warto się nauczyć, jest RGL , który z łatwością zapewnia możliwość tworzenia interaktywnej grafiki 3D. Istnieje wiele przykładów online (w tym w dokumentacji rgl).
R-Wiki ma ładny przykład rysowania wykresów punktowych 3D za pomocą rgl.
GGobi
Kolejnym pakietem, który warto poznać, jest rggobi . Jest na ten temat książka Springera i mnóstwo świetnej dokumentacji / przykładów online, w tym na kursie „Looking at Data” .
źródło
Bardzo lubię dotploty i kiedy polecam je innym w przypadku problemów z danymi, zawsze są zaskoczeni i zachwyceni. Nie wydają się zbytnio użyteczne i nie mogę zrozumieć, dlaczego.
Oto przykład z Quick-R:
Uważam, że Cleveland jest najbardziej odpowiedzialny za ich rozwój i rozpowszechnianie, a przykład w jego książce (w której błędne dane można było łatwo wykryć za pomocą kropki) jest silnym argumentem za ich użyciem. Zauważ, że powyższy przykład pokazuje tylko jedną kropkę na linię, podczas gdy ich prawdziwa moc pochodzi z tobą, masz wiele kropek na każdej linii, z legendą wyjaśniającą, która jest która. Na przykład, możesz użyć różnych symboli lub kolorów dla trzech różnych punktów czasowych, a tym samym łatwo poznać wzorce czasowe w różnych kategoriach.
W poniższym przykładzie (wykonanym w Excelu wszystkich rzeczy!) Możesz wyraźnie zobaczyć, która kategoria mogła ulec zmianie z powodu zamiany etykiet.
źródło
Wykresy korzystające ze współrzędnych biegunowych są z pewnością niewykorzystane - niektórzy twierdzą, że nie bez powodu. Myślę, że sytuacje uzasadniające ich użycie nie są powszechne; Myślę też, że kiedy takie sytuacje się pojawią, wykresy biegunowe mogą ujawnić wzorce danych, których wykresy liniowe nie są w stanie.
Myślę, że dzieje się tak dlatego, że czasami twoje dane są z natury biegunowe, a nie liniowe - np. Są cykliczne (współrzędne x reprezentują czasy w ciągu 24-godzinnego dnia przez wiele dni) lub dane były wcześniej mapowane na polarną przestrzeń cech.
Oto przykład. Ten wykres pokazuje średni ruch w witrynie według godziny. Zwróć uwagę na dwa skoki o 10 wieczorem i o 1 w nocy. Dla inżynierów sieciowych Witryny są one znaczące; znaczące jest również to, że występują one blisko siebie (w odstępie zaledwie dwóch godzin). Ale jeśli wykreślisz te same dane na tradycyjnym układzie współrzędnych, wzór ten byłby całkowicie ukryty - wykreślony liniowo, te dwa skoki byłyby w odstępie 20 godzin, to są one, chociaż są one również tylko dwie godziny w kolejnych dniach. Powyższy wykres polarny pokazuje to w oszczędny i intuicyjny sposób (legenda nie jest konieczna).
Są dwa sposoby (o których wiem), aby utworzyć takie wykresy za pomocą R (stworzyłem wykres powyżej w / R). Jednym z nich jest zakodowanie własnej funkcji w systemie graficznym bazowym lub gridowym. Innym sposobem, który jest łatwiejszy, jest użycie okrągłego pakietu . Można by użyć funkcji „ rose.diag ”:
źródło
qplot(y=data, x=1:length(data), fill=factor(1:length(data)), stat='identity', geom='bar') + coord_polar()
Jeśli wykres rozproszenia ma tak wiele punktów, że staje się kompletnym bałaganem, wypróbuj wygładzony wykres rozproszenia. Oto przykład:
hexbin
Opakowanie (sugeruje @Dirk Eddelbuettel) służy do tego samego celu, leczsmoothScatter()
ma tę zaletę, że należące dographics
opakowania i stanowi część standardowej instalacji R.źródło
Odnośnie wykresie przebiegu i innych Tufte idei, YaleToolkit pakiet na CRAN zapewnia funkcje
sparkline
isparklines
.Kolejny pakiet, który jest użyteczny w przypadku większych zbiorów danych jest hexbin jak to sprytnie danych „koszach” do wiadra do czynienia ze zbiorami danych, które mogą być zbyt duże dla naiwnych rozrzutu.
źródło
plot
aktualizacji w moim pytaniu , z pewną pomocą tego postu na forum TufteHmisc::latex()
Wersja z wyjściemHmisc::describe
zawiera mini-histogram, który zostanie uwzględniony w tabeli.Wykresy skrzypcowe (które łączą wykresy skrzynkowe z gęstością jądra) są stosunkowo egzotyczne i całkiem fajne. Vioplot pakiet w R pozwala uczynić je dość łatwo.
Oto przykład (link do Wikipedii pokazuje również przykład):
źródło
bwplot(... panel = panel.violin)
Kolejną miłą wizualizacją szeregów czasowych, którą właśnie przeglądałem, jest „wykres wypukły” (opisany w tym poście na blogu „Learning R” ). Jest to bardzo przydatne do wizualizacji zmian pozycji w czasie.
Możesz przeczytać o tym, jak go utworzyć na http://learnr.wordpress.com/ , ale tak to wygląda:
źródło
Podoba mi się również modyfikacja wykresów pudełkowych przez Tufte, która pozwala na łatwiejsze porównywanie małych wielokrotności, ponieważ są one bardzo „cienkie” w poziomie i nie zaśmiecają wydruku zbędnym atramentem. Działa jednak najlepiej z dość dużą liczbą kategorii; jeśli masz tylko kilka na działce, zwykłe (Tukey) wykresy pudełkowe wyglądają lepiej, ponieważ mają nieco większą wagę.
Inne sposoby ich tworzenia (w tym inny rodzaj wykresu pudełkowego Tufte) zostały omówione w tym pytaniu .
źródło
Nie powinniśmy zapominać o uroczej i (historycznie) ważnej fabule łodyg i liści (którą Tufte też uwielbia!). Otrzymujesz bezpośredni numeryczny przegląd gęstości i kształtu danych (oczywiście jeśli twój zestaw danych nie jest większy niż około 200 punktów). W R funkcja
stem
wytwarza wyświetlanie pędów i liści (w obszarze roboczym). Wolę używaćgstem
funkcji z pakietu fmsb, aby narysować ją bezpośrednio w urządzeniu graficznym. Poniżej przedstawiono odchylenie temperatury ciała bobra (dane powinny znajdować się w domyślnym zestawie danych) na ekranie łodyg po liściach:źródło
Wykresy horyzontalne (pdf) do wizualizacji wielu szeregów czasowych jednocześnie.
Wykresy współrzędnych równoległych (pdf) do analizy wielowymiarowej.
Wykresy asocjacyjne i mozaikowe do wizualizacji tabel awaryjnych (patrz pakiet vcd )
źródło
Oprócz doskonałej pracy Tufte polecam książki Williama S. Clevelanda: Wizualizacja danych i elementy grafowania danych . Są nie tylko doskonałe, ale wszystkie zostały wykonane w języku R i uważam, że kod jest publicznie dostępny.
źródło
Boxplots! Przykład z pomocy R:
Moim zdaniem jest to najbardziej poręczny sposób na szybkie sprawdzenie danych lub porównanie dystrybucji. W przypadku bardziej złożonych dystrybucji istnieje rozszerzenie o nazwie
vioplot
.źródło
Wydaje mi się, że wykresy mozaikowe spełniają wszystkie cztery wymienione kryteria. Istnieją przykłady wr, pod mozaiką.
źródło
Sprawdź pracę Edwarda Tufte'a, a zwłaszcza tę książkę
Możesz także spróbować złapać jego podróżną prezentację . Jest całkiem dobry i zawiera pakiet czterech jego książek. (przysięgam, że nie posiadam akcji jego wydawcy!)
Nawiasem mówiąc, podoba mi się jego technika wizualizacji danych w czasie. Niespodzianka! Google już to napisał i opublikował w Kodzie Google
źródło
Wykresy podsumowujące? Jak wspomniano na tej stronie:
Wizualizacja statystyk podsumowujących i niepewności
źródło