ggplot2 - Rozbieżne wykresy
W poprzednich rozdziałach przyjrzeliśmy się różnym typom wykresów, które można tworzyć za pomocą pakietu „ggplot2”. Skoncentrujemy się teraz na odmianach takich samych, jak rozbieżne wykresy słupkowe, wykresy typu lizak i wiele innych. Na początek zaczniemy od tworzenia rozbieżnych wykresów słupkowych, a kroki, które należy wykonać, opisano poniżej -
Zrozumienie zbioru danych
Załaduj wymagany pakiet i utwórz nową kolumnę o nazwie „nazwa samochodu” w zestawie danych mpg.
#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name` <- rownames(mtcars)
> # compute normalized mpg
> mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)
> # above / below avg flag
> mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
> # sort
> mtcars <- mtcars[order(mtcars$mpg_z), ]
Powyższe obliczenia obejmują utworzenie nowej kolumny dla nazw samochodów, obliczenie znormalizowanego zestawu danych za pomocą funkcji round. Możemy również użyć flagi powyżej i poniżej avg, aby uzyskać wartości funkcji „type”. Później sortujemy wartości, aby utworzyć wymagany zbiór danych.
Otrzymane dane wyjściowe są następujące -
Zamień wartości na czynniki, aby zachować posortowaną kolejność na określonym wykresie, jak wspomniano poniżej -
> # convert to factor to retain sorted order in plot.
> mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)
Uzyskane dane wyjściowe są wymienione poniżej -
Rozbieżny wykres słupkowy
Teraz utwórz rozbieżny wykres słupkowy ze wspomnianymi atrybutami, które są traktowane jako wymagane współrzędne.
> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+ title= "Diverging Bars") +
+ coord_flip()
Note - Rozbieżne znaki słupkowe dla niektórych elementów wymiaru wskazujące w górę lub w dół w odniesieniu do wymienionych wartości.
Wynik rozbieżnego wykresu słupkowego jest wymieniony poniżej, gdzie używamy funkcji geom_bar do tworzenia wykresu słupkowego -
Rozbieżny wykres Lollipop
Utwórz rozbieżny wykres typu lollipop z takimi samymi atrybutami i współrzędnymi, ze zmianą tylko funkcji, która ma być używana, tj. Geom_segment (), która pomaga w tworzeniu wykresów typu lizak.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+ x = `car name`,
+ yend = mpg_z,
+ xend = `car name`),
+ color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+ subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Rozbieżny wykres punktowy
Utwórz rozbieżny wykres punktowy w podobny sposób, gdzie kropki reprezentują punkty na rozproszonych wykresach w większym wymiarze.
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', aes(col=mpg_type), size=6) +
+ scale_color_manual(name="Mileage",
+ labels = c("Above Average", "Below Average"),
+ values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+ subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()
Tutaj legendy przedstawiają wartości „Powyżej średniej” i „Poniżej średniej” w różnych kolorach - zielonym i czerwonym. Wykres punktowy przekazuje informacje statyczne. Zasady są takie same, jak w przypadku wykresu słupkowego z rozbieżnością, z tym że używany jest tylko punkt.