Uwaga: dołączono teraz 50 punktów surowych danych.
Chcę wyświetlić, ile badań wykonałem i ile stron ukończyłem w ciągu tygodnia, w podziale na dni, i zrobiłem to, jak pokazano poniżej:
Ludzie mówili mi, że nie mogą zrozumieć wykresów, ale nie mam pojęcia, jak inaczej mogę je wyświetlić. Ponieważ zasadniczo potrzebowałbym trzech wymiarów bez skumulowanego przedstawienia. Chcę uniknąć używania wielu wykresów liniowych, ponieważ po kilku tygodniach wykresy staną się nieczytelne. Czy nic nie mogę zrobić?
Jak mogę wyświetlić je wyraźniej?
Date Total Total pages
21/11/2014 2.4166 0
22/11/2014 0 0
23/11/2014 1.5833 4
24/11/2014 3.0166 13
25/11/2014 2.4999 6
26/11/2014 1.4833 3
27/11/2014 3.0499 6
28/11/2014 0 0
29/11/2014 2.4499 5
30/11/2014 2.8833 2
1/12/2014 0 0
2/12/2014 4.1166 8
3/12/2014 1.3333 5
4/12/2014 1.2499 3
5/12/2014 1.6666 8
6/12/2014 0 0
7/12/2014 2.4833 9
29/12/2014 0 0
30/12/2014 1.2332 1
31/12/2014 0.3333 0
1/01/2015 3.5666 2
2/01/2015 0.8166 0
3/01/2015 2.75 28
4/01/2015 0.4166 0
5/01/2015 1.2833 0
6/01/2015 0.3333 3
7/01/2015 0 0
8/01/2015 0 0
9/01/2015 2.35 2
10/01/2015 0.5666 0
11/01/2015 0 0
12/01/2015 1.6666 0
13/01/2015 2.2666 5
14/01/2015 2.5165 6
15/01/2015 2.0166 0
16/01/2015 2.9666 1
17/01/2015 0.8333 0
18/01/2015 0.6666 1
19/01/2015 1.45 0
20/01/2015 0.3166 0
21/01/2015 0 0
22/01/2015 0.2333 0
23/01/2015 0.85 2
24/01/2015 0 0
25/01/2015 0 0
26/01/2015 0.6666 4
27/01/2015 0.8333 1
28/01/2015 1.5498 5
29/01/2015 6.4159 9
30/01/2015 2.9166 0
data-visualization
gung - Przywróć Monikę
źródło
źródło
Odpowiedzi:
Jednym ze sposobów wizualizacji danych opartych na dacie / kalendarzu jest wyświetlanie matrycowe, które koduje dane kolorem. Macierz (lub tabela) jest ułożona tak, że wiersze reprezentują tygodnie, a kolumna dni. Jeśli jest to pożądane, możesz dodać ostatnią kolumnę do sumy tygodniowej.
Można to nieco zaimplementować w programie Excel z formatowaniem warunkowym, jeśli dane są poprawnie ułożone. W szczególności możesz zbudować „siatkę” wartości za pomocą formuł, które sprawdzają twoje oryginalne dane. Stamtąd możesz użyć formatowania warunkowego, aby wyświetlić wynik.
Oto, jak może wyglądać wynik. Przepraszamy, zmieniłem format daty. Preparat w komórce H1:
"=IFERROR(VLOOKUP($G$1+$G6*7+H$5, $B$5:$C$16,2,FALSE), 0)"
. Robi trochę matematyki, aby uzyskać dni we właściwej kolejności. Mam nadzieję, że jest to proste.Jeśli naprawdę chcesz przesunąć kopertę, możesz użyć frameworka takiego jak d3 i jego wtyczki kalendarza, aby wyświetlić te dane. To może być bardziej przedsięwzięcie, niż jest warte.
Ten format jest bardzo podobny do tego, jak GitHub wyświetla aktywność / wkład użytkowników w czasie. Oto jeden użytkownik (nie ja!).
źródło
Główną cechą oryginału są cotygodniowe sumy. Poszczególne wartości są znaczące dopiero po nauce kolorów i wydaje mi się, że to duży powód, dla którego fabuła nie działa dla nowych widzów. W związku z tym utracono aspekt czasowy dni. Sekwencyjny zestaw kolorów może pomóc (np 7 odcieniach niebieskiego).
Zazwyczaj nie dbam o to, aby oznaczyć każdy przedmiot - czy dokładne wartości są tak ważne? Wykres nie spełnia swojej roli, jeśli nie można go zinterpretować bez każdej wartości oznaczonej.
Do mojej próby . Biorąc pod uwagę pozorne znaczenie tygodniowych kwot, zaplanowałem tygodniowe sumy zbiorcze. Pokazuje tygodniowe kwoty i kolejność dni. Dokładne wartości dnia są mniej jasne, ale wartości odstające nadal będą się wyróżniać.
W przypadku tego rodzaju małych wykresów liniowych (które można zmniejszyć do wielkości wykresu przebiegu w czasie ) pomocne jest posiadanie linii odniesienia lub obszaru. Dla ilustracji dodałem zakres docelowy. Jeśli cel nie jest odpowiedni, referencja może być czymś w rodzaju zakresu z ostatnich trzech tygodni lub jakąś stałą wartością referencyjną.
Użyłem czerwonego, aby wskazać, które tygodnie były poniżej celu do szybkiego skanowania.
Mając o wiele więcej tygodni, możesz uporządkować je w siatkę zamiast w pionową listę.
źródło
Jeśli dobrze cię rozumiem, powodem, dla którego nie chcesz używać wykresów liniowych, jest to, że masz zbyt wiele tygodni, a wykresy byłyby nieporządne.
Jeśli to jest problem, możesz podzielić szeregi czasowe na komponenty:
Codzienna zmiana
Zmiana tygodniowa
Trend długoterminowy
Coś jeszcze.
William S. Cleveland pokazuje ładny przykład tego w jednej ze swoich książek (nie ma mnie w biurze i nie pamiętam, która z jego książek ma ten przykład, ale jest to albo wizualizacja danych, albo elementy wykresów danych ).
Zarówno R, jak i SAS mają do tego narzędzia. Czy masz dostęp do któregokolwiek z nich?
źródło
Najpierw przedstawię kilka zastrzeżeń do oryginalnych ułożonych lub podzielonych wykresów słupkowych.
za. Kodowanie kolorami wydaje się całkowicie dowolne. Dlatego wykresu nie można badać bez ciągłego przechodzenia między legendą a wykresem.
b. Zera są niejawne, jako niewidoczne segmenty słupków. Zera są częścią tej odmiany.
Z tych i innych powodów wykresy są trudne do odkodowania.
To powiedziawszy, wykres ma tę zaletę, jeśli zainteresowanie polega głównie na badaniu zmienności sum z tygodnia na tydzień. Wiele tygodni można wykreślić jako tyle pasków. Odpowiednim minusem jest to, że coraz trudniej byłoby badać warianty w ciągu tygodni.
Tworzenie kopii zapasowej: W każdym problemie są trzy zmienne.
Czas studiowany lub strony kompletne.
Dzień tygodnia.
Numer tygodnia
Wraz ze wzrostem liczby tygodni każdy wykres będzie stawał się bardziej szczegółowy. Wyzwanie polega na kontrolowaniu tych szczegółów.
Rozważyłbym wykres cyklu (inne nazwy zostały użyte w literaturze, ale większość odnosi się do jego zastosowania do analizy zmian sezonowych). Naomi Robbins ma tutaj wyraźne wprowadzenie. Jej przykłady obejmują takie jak twoje, w których zainteresowanie jest zróżnicowane w ciągu tygodni i między nimi.
źródło
Wykresy liniowe byłyby prawdopodobnie łatwiejsze do zinterpretowania, gdybyś wziął zmienną średnią z siedmiu, 14 lub 14 dni. To by je wygładziło i nadal pozwoliło dostrzec trendy.
Jest to pewne podobieństwo do rozwiązania Petera Floma, choć jest raczej prostsze i dlatego nie przedstawia tak pełnego obrazu - ale może być wystarczające dla twoich potrzeb. Jeśli rejestrujesz swoje dane w arkuszu kalkulacyjnym, zaletą jest to, że takie uśrednianie można łatwo przeprowadzić w samym arkuszu kalkulacyjnym, konfigurując niektóre formuły, a wykres będzie aktualizowany automatycznie po wypełnieniu nowych danych.
Zaktualizuj, aby uwzględnić wykresy
Wykres arkusza kalkulacyjnego dla siedmiodniowych średnich kroczących jest nieefektywny, ale wydaje się, że dobrze sobie radzi - codzienne zmiany są wygładzane, dzięki czemu trendy są łatwiejsze do wykrycia (w porównaniu z równoważnym dziennym wykresem, który jest tak głośny, że jest niezrozumiały). Fabuła dobrze zaznacza niektóre kluczowe cechy: na przykład duża ilość pracy została wykonana w połowie stycznia, w ujęciu godzinnym, ale nie towarzyszył temu proporcjonalny wzrost średniej liczby ukończonych stron dziennie. Przerwa świąteczna jest bardzo widoczna i tak długo, jak poszczególne punkty danych są wyraźnie wykreślone, nie jest to zbyt mylące (gdyby tylko widoczna była linia, nie byłoby możliwe ustalenie, że okres płaski był spowodowany brakiem danych!). Niemniej jednak zdecydowanie zalecam włączenie≈ 1,5
Przy zaledwie pięćdziesięciu danych nie warto próbować uśredniać w dłuższym okresie czasu, aby wykryć trendy długookresowe. Podobnie podejrzewam, że doskonały pomysł Petera Floma na sezonowy rozkład miałby problemy z tak ograniczonymi danymi. Jeśli rozkład miałby zostać przeprowadzony w arkuszu kalkulacyjnym, jeszcze ważniejsze byłoby uwzględnienie podziału jako danych zerowych.
Aby odtworzyć moje formuły, wklej to, aby „Data” była w komórce
A1
:źródło
Jak rozumiem twoje pytanie, możliwe byłoby wyświetlanie godzin i stron osobno. Zrobię to pierwszy. Następnie wyświetlę Suma i Strony na jednym wykresie. Domyślam się, że rzeczywiste liczby nie są najważniejsze - ważniejsze jest, aby uzyskać przegląd tygodni i dni tygodnia, które były produktywne, a które nie. W takim przypadku sugeruję, abyś zachował naturalną strukturę czasową, ponieważ w rzeczywistości istnieje tylko jeden wymiar czasowy w twoich danych. Nadal możemy znaleźć sposób na wyznaczenie tygodni.
Użyłem następującego kodu R i pakietu ggplot2, aby stworzyć ten pierwszy wykres. Twoje dane zostały załadowane do danych obiektowych w poniższym kodzie. Wykres to zgrupowany wykres słupkowy z szarymi słupkami wskazującymi tygodniowe sumy stron.
To oczywiście nie jest idealne. Szare słupki dominują do tego stopnia, że w porównaniu do paska dziennego mają większą powierzchnię dla tej samej ilości odczytów. Możemy sprawić, że będą cieńsze, ale podoba mi się sposób, w jaki wyznaczają tygodnie. Wskazują całkiem ładnie, które dni są w tym samym tygodniu - inaczej niekoniecznie byłoby to zrozumiałe. Zwłaszcza, że mamy zero.
Na następnym wykresie wykorzystałem średnią liczbę stron (w ciągu tygodnia) jako wysokość szarego paska.
To prawdopodobnie lepiej reprezentuje dane. Zauważ jednak, że tydzień 0 i 7 wprowadzają w błąd, ponieważ nie obejmowały 7 dni. Możesz łatwo obejść ten problem.
Jeśli nalegasz na jednoczesne wyświetlanie stron i czasu, możesz wykonać wykres słupkowy jeden za drugim. Może to być trochę mylące, ponieważ dwie pionowe skale nie są takie same. Z drugiej strony fajnie byłoby porównać czas spędzony i pracę wykonaną bezpośrednio w ten sposób.
EDYCJA: Zdając sobie sprawę, że kolory naprawdę nie są tak bardzo potrzebne i zainspirowany Xanem (patrz poniżej komentarze), możesz uprościć fabułę do czegoś takiego. Zaznaczyłem Czwarty, aby dać dodatkowy wizualny przewodnik. Możesz również argumentować za użyciem tego samego koloru dla wszystkich pasków, aby nie przeceniać niektórych (dowolnych) dni.
Na koniec możesz również spróbować skalować osie inaczej, dzieląc swoje wartości przez wartość średnią. To sprawiłoby, że 1 byłaby „normalną” wartością. Możemy podkreślić linię na 1, aby podkreślić ten punkt - teraz zrobione na fabule od tyłu do tyłu. Oddziela to „dobre” od „złych” dni pod względem średniego obciążenia pracą.
Na tym wykresie możemy również upewnić się, że jedna jednostka odpowiada tej samej odległości na obu osiach, ponieważ są one teraz porównywalne.
Pamiętaj też, że pomieszałem dni w pierwszej wersji. Poprawiłem kod i wykresy i zacznę ćwiczyć teraz przez siedem dni w tygodniu.
Kod, który wytworzył ostatni wykres:
źródło
źródło
Poniższy wykres pokazuje skumulowane godziny nauki i łączną liczbę stron w ciągu każdego tygodnia przy użyciu linii zamiast ułożonych słupków, co, miejmy nadzieję, ułatwi obserwowanie trendu w każdym tygodniu i porównywanie tygodni. Wypełniłem brakujące tygodnie zerami, ale możesz je wykluczyć, jeśli chcesz.
R
Kod do generowania i przetwarzania danych działki jest zamieszczona poniżej wykresu.Wykonując poniższe kroki, najpierw załadowałem dane opublikowane w pytaniu do ramki danych o nazwie
dat
.źródło
Inną opcją jest wykres bąbelkowy, w którym możesz mieć wysokość pionową dla jednej zmiennej i rozmiar kropki dla drugiej. Poniżej data (dzień) jest pozioma, Przebadane godziny są pionowe, Strony pokryte dziennie mają rozmiar bąbelków, a tydzień jest kolorowy.
źródło
Możesz wykreślić w 3d. Nie sprawdziłem, czy dzień tygodnia został poprawnie obliczony, nie znalazłem najlepszego kąta widzenia itp., Ale to powinno dać ci pomysł. Możliwe są również dalsze ozdoby. Na przykład może być lepiej połączyć punkty linią i przesunąć linie siatki, aby odpowiadały każdemu poniedziałkowi.
W rzeczywistości to, co byłoby bardzo interesujące, aby spróbować, to aby każda linia lewej i prawej i góry do dołu (jak pokazano pod tym kątem) odpowiadała temu samemu dniu tygodnia (np. Poniedziałek), a następnie umieszczenie wykresów pudełkowych na dolnej i tylnej prawej ścianie w obrębie linie siatki. Wykresy odpowiadałyby odpowiednio całkowitej liczbie godzin i łącznej liczbie stron w każdym tygodniu. Jestem prawie pewien, że byłoby to możliwe z rgl, ale wymagałoby to trochę majsterkowania. Może być tego warte. Wykresy skrzypcowe lub fasolowe mogą być jeszcze lepsze.
Dane (do wprowadzenia do R):
Zrób fabułę:
źródło
Pomocna może być mapa termiczna z numerem tygodnia (roku), dniem tygodnia i aspektami godzin i stron:
Usunięcie 2 wysokich wartości daje lepsze gradienty kolorów na wydruku:
Pomocne może być również przestrzeganie wykresu słupkowego.
Wyraźnie pokazuje 2 tygodnie, kiedy nie wykonano żadnej pracy.
Przydatny może być również wykres z liniami (linie nie są zagracone; punkty można również usunąć, zachowując tylko dwie linie)
Wyraźnie przekazują informacje, jednocześnie upraszczając fabułę dla łatwego zrozumienia.
źródło