Wykres punktowy w R przy użyciu ggplot2 (z przykładem)

Spisie treści:

Anonim

Wykresy to trzecia część procesu analizy danych. Pierwsza część dotyczy ekstrakcji danych , druga dotyczy czyszczenia i manipulowania danymi . W końcu analityk danych może potrzebować przedstawić swoje wyniki w formie graficznej .

Poniższy rysunek przedstawia pracę naukowca zajmującego się danymi

  • Pierwszym zadaniem naukowca zajmującego się danymi jest zdefiniowanie pytania badawczego. To pytanie badawcze zależy od celów i celów projektu.
  • Następnie jednym z najważniejszych zadań jest inżynieria cech. Analityk danych musi zbierać, przetwarzać i czyścić dane
  • Po wykonaniu tego kroku może rozpocząć przeglądanie zbioru danych. Czasami konieczne jest udoskonalenie i zmiana pierwotnej hipotezy z powodu nowego odkrycia.

  • Po przeprowadzeniu analizy wyjaśniającej naukowiec danych musi wziąć pod uwagę zdolność czytelnika do zrozumienia podstawowych pojęć i modeli .
  • Jego wyniki powinny być przedstawione w formacie zrozumiałym dla wszystkich zainteresowanych stron. Jedną z najlepszych metod przekazywania wyników jest wykres .
  • Wykresy to niesamowite narzędzie upraszczające złożone analizy.

W tym samouczku nauczysz się:

  • pakiet ggplot2
  • Wykres punktowy
  • Zmień oś
  • Wykres punktowy z dopasowanymi wartościami
  • Dodaj informacje do wykresu
  • Zmień nazwę osi X i osi Y.
  • Kontroluj wagę
  • Motyw
  • Zapisz działki

pakiet ggplot2

Ta część samouczka koncentruje się na tym, jak tworzyć wykresy / wykresy za pomocą R.

W tym samouczku będziesz używać pakietu ggplot2. Ten pakiet jest oparty na spójnej podstawie książki „Gramatyka grafiki” napisanej przez Wilkinsona, 2005. ggplot2 jest bardzo elastyczny, zawiera wiele tematów i specyfikacji fabuły na wysokim poziomie abstrakcji. Dzięki ggplot2 nie możesz drukować trójwymiarowej grafiki ani tworzyć grafiki interaktywnej.

W ggplot2 wykres składa się z następujących argumentów:

  • dane
  • estetyczne odwzorowanie
  • obiekt geometryczny
  • transformacje statystyczne
  • waga
  • system współrzędnych
  • korekty pozycji
  • fasetowanie

Dowiesz się, jak kontrolować te argumenty w samouczku.

Podstawowa składnia ggplot2 to:

ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Wykres punktowy

Zobaczmy, jak działa ggplot ze zbiorem danych mtcars. Zaczynasz od wykreślenia wykresu rozrzutu zmiennej mpg i zmiennej drat.

Podstawowy wykres punktowy

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Objaśnienie kodu

  • Najpierw przekazujesz zestaw danych mtcars do ggplot.
  • Wewnątrz argumentu aes () dodajesz oś x i oś y.
  • Znak + oznacza, że ​​chcesz, aby R nadal czytał kod. Czyni kod bardziej czytelnym, łamiąc go.
  • Użyj geom_point () dla obiektu geometrycznego.

Wynik:

Wykres punktowy z grupami

Czasami interesujące może być rozróżnienie wartości według grupy danych (tj. Danych na poziomie czynnika).

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Objaśnienie kodu

  • Element aes () wewnątrz geom_point () kontroluje kolor grupy. Grupa powinna być zmienną czynnikową. W ten sposób zamieniasz zmienny bieg na współczynnik.
  • W sumie masz kod aes (kolor = współczynnik (koło zębate)), który zmienia kolor kropek.

Wynik:

Zmień oś

Zmiana skali danych to duża część pracy analityka danych. W rzadkich przypadkach dane mają ładny kształt dzwonka. Jednym ze sposobów zmniejszenia wrażliwości danych na wartości odstające jest ich ponowne skalowanie.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Objaśnienie kodu

  • Zmienne x i y transformuje się w log () bezpośrednio w odwzorowaniu aes ().

Należy zauważyć, że można zastosować dowolną inną transformację, taką jak standaryzacja lub normalizacja.

Wynik:

Wykres punktowy z dopasowanymi wartościami

Możesz dodać kolejny poziom informacji do wykresu. Można wykreślić dopasowaną wartość regresji liniowej.

my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph

Objaśnienie kodu

  • wykres: Zapisujesz swój wykres na wykresie zmiennych. Jest to pomocne przy dalszym użyciu lub unikaniu zbyt skomplikowanych linii kodów
  • Argument stat_smooth () kontroluje metodę wygładzania
  • metoda = "lm": Regresja liniowa
  • col = "# C42126": Kod dla czerwonego koloru linii
  • se = FALSE: Nie wyświetlaj błędu standardowego
  • size = 1: rozmiar linii to 1

Wynik:

Zwróć uwagę, że dostępne są inne metody wygładzania

  • glm
  • gam
  • less: wartość domyślna
  • obręcz

Dodaj informacje do wykresu

Jak dotąd nie dodaliśmy informacji na wykresach. Wykresy muszą mieć charakter informacyjny. Czytelnik powinien zapoznać się z historią analizy danych po prostu patrząc na wykres bez odwoływania się do dodatkowej dokumentacji. Dlatego wykresy wymagają dobrych etykiet. Możesz dodawać etykiety za pomocą funkcji labs ().

Podstawowa składnia funkcji lab () to:

lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")

Dodaj tytuł

Jedną obowiązkową informacją do dodania jest oczywiście tytuł.

my_graph +labs(title = "Plot Mile per hours and drat, in log")

Objaśnienie kodu

  • my_graph: Używasz zapisanego wykresu. Pozwala uniknąć przepisywania wszystkich kodów za każdym razem, gdy dodajesz nowe informacje do wykresu.
  • Umieszczasz tytuł wewnątrz lab ().
  • Kod dla czerwonego koloru linii
  • se = FALSE: Nie wyświetlaj błędu standardowego
  • size = 1: rozmiar linii to 1

Wynik:

Dodaj tytuł z dynamiczną nazwą

Dynamiczny tytuł jest pomocny w dodawaniu dokładniejszych informacji do tytułu.

Możesz użyć funkcji paste (), aby wydrukować tekst statyczny i tekst dynamiczny. Podstawowa składnia metody paste () to:

paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma

Przykład:

A <-2010paste("The first year is", A)

Wynik:

## [1] "The first year is 2010"
B <-2018

paste("The first year is", A, "and the last year is", B)

Wynik:

## [1] "The first year is 2010 and the last year is 2018" 

Możesz dodać dynamiczną nazwę do naszego wykresu, a mianowicie średnią mpg.

mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))

Objaśnienie kodu

  • Tworzysz średnią z mpg ze średnią (mtcars $ mpg) przechowywaną w zmiennej mean_mpg
  • Używasz metody paste () z mean_mpg, aby utworzyć dynamiczny tytuł zwracający średnią wartość mpg

Wynik:

Dodaj podtytuł

Dwa dodatkowe szczegóły mogą uczynić twój wykres bardziej wyraźnym. Mówisz o podtytule i podpisie. Podtytuł znajduje się tuż pod tytułem. Podpis może informować o tym, kto wykonał obliczenia i źródle danych.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Objaśnienie kodu

  • Wewnątrz laboratorium () dodano:
    • title = "Relacja między milą na godziny a dratem": Dodaj tytuł
    • subtitle = "Podział relacji według klasy sprzętu": Dodaj podtytuł
    • caption = "Obliczenia własne autora: Dodaj podpis
    • Oddzielasz każdą nową informację przecinkiem,
  • Zwróć uwagę, że łamiesz linie kodu. Nie jest to obowiązkowe, a jedynie ułatwia odczytanie kodu

Wynik:

Zmień nazwę osi X i osi Y.

Same zmienne w zbiorze danych mogą nie zawsze być jawne lub zgodnie z konwencją używaj znaku _, gdy występuje wiele słów (np. GDP_CAP). Nie chcesz, aby taka nazwa pojawiała się na Twoim wykresie. Ważne jest, aby zmienić nazwę lub dodać więcej szczegółów, takich jak jednostki.

my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Objaśnienie kodu

  • Wewnątrz laboratorium () dodano:
    • x = "Definicja Drat": Zmień nazwę osi X.
    • y = "Mila na godziny": Zmień nazwę osi Y.

Wynik:

Kontroluj wagę

Możesz kontrolować skalę osi.

Funkcja seq () jest wygodna, gdy trzeba utworzyć sekwencję liczb. Podstawowa składnia to:

seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`

Na przykład, jeśli chcesz utworzyć zakres od 0 do 12 z krokiem 3, będziesz mieć cztery liczby, 0 4 8 12

seq(0, 12,4)

Wynik:

## [1] 0 4 8 12 

Możesz kontrolować skalę osi X i osi Y, jak poniżej

my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Objaśnienie kodu

  • Funkcja scale_y_continuous () steruje osią y
  • Scale_x_continuous funkcja () kontroluje oś x .
  • Parametr breaks steruje podziałem osi. Możesz ręcznie dodać sekwencję liczb lub użyć funkcji seq ():
    • seq (1, 3,6, by = 0,2): Utwórz sześć liczb od 2,4 do 3,4 z krokiem 3
    • seq (1, 1,6, by = 0,1): Utwórz siedem liczb od 1 do 1,6 z krokiem 1

Wynik:

Motyw

Wreszcie, R pozwala nam dostosować fabułę za pomocą różnych motywów. Biblioteka ggplot2 zawiera osiem motywów:

  • theme_bw ()
  • theme_light ()
  • motyw_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • theme_minimal ()
  • theme_gray ()
  • theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Wynik:

Zapisz działki

Po tych wszystkich krokach nadszedł czas, aby zapisać i udostępnić swój wykres. Dodajesz ggsave (NAZWA PLIKU) zaraz po wykreśleniu wykresu i zostanie on zapisany na dysku twardym.

Wykres jest zapisywany w katalogu roboczym. Aby sprawdzić katalog roboczy, możesz uruchomić ten kod:

directory <-getwd()directory 

Narysujmy twój fantastyczny wykres, zapiszmy go i sprawdźmy lokalizację

my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Wynik:

ggsave("my_fantastic_plot.png.webp")

Wynik:

## Saving 5 x 4 in image

Uwaga : wyłącznie do celów pedagogicznych stworzyliśmy funkcję o nazwie open_folder (), aby otworzyć dla Ciebie folder katalogu. Wystarczy uruchomić poniższy kod i zobaczyć, gdzie jest przechowywany obraz. Powinieneś zobaczyć nazwę pliku my_fantastic_plot.png.webp.

# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)

Podsumowanie

Możesz podsumować argumenty, aby utworzyć wykres punktowy w poniższej tabeli:

Cel

Kod

Podstawowy wykres punktowy

ggplot(df, aes(x = x1, y = y)) + geom_point()

Wykres punktowy z grupą kolorów

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm")

Dodaj dopasowane wartości

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1))

Dodaj tytuł

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99"))

Dodaj podtytuł

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99"))

Zmień nazwę x

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1")

Zmień nazwę y

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1")

Kontroluj skalę

ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1)

Utwórz dzienniki

ggplot(df, aes(x =log(x1), y = log(y))) + geom_point()

Motyw

ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic()

Zapisać

ggsave("my_fantastic_plot.png.webp")