Lintdiagramm ja histogramm R-s (näitega)
Lintdiagramm on suurepärane viis kategooriliste muutujate kuvamiseks x-teljel. Seda tüüpi graafik tähistab y-teljel kahte aspekti.
- Esimene loendab esinemiste arvu rühmade vahel.
- Teine näitab y-telje muutuja kokkuvõtvat statistikat (min, max, keskmine ja nii edasi).
Kasutate mtcarsi andmestikku, millel on järgmised muutujad:
- cyl: silindri number autos. Numbriline muutuja
- am: ülekande tüüp. 0 automaatse ja 1 manuaalse jaoks. Numbriline muutuja
- mpg: miili galloni kohta. Numbriline muutuja
Kuidas luua tulpdiagrammi
Graafiku loomiseks R, saate kasutada teeki ggplot, mis loob avaldamiseks valmis graafikud. Selle teegi põhisüntaks on:
ggplot(data, mapping = aes()) + geometric object arguments: data: dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common objects are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()`
Selles õpetuses huvitab teid geomeetriline objekt geom_bar(), mis loob tulpdiagrammi.
Lintdiagramm: loendamine
Teie esimene graafik näitab silindri sagedust koos geom_bar(). Allolev kood on kõige elementaarsem süntaks.
library(ggplot2) # Most basic bar chart ggplot(mtcars, aes(x = factor(cyl))) + geom_bar()
Koodi selgitus
- Edastate andmestiku mtcars ggplotile.
- Argumendi aes() sisse lisate x-telje faktorimuutujana (cyl)
- + märk tähendab, et soovite, et R jätkaks koodi lugemist. See muudab koodi loetavamaks, purustades selle.
- Kasutage geomeetrilise objekti jaoks geom_bar().
Väljund:
märkused: veenduge, et muudate muutujad teguriks, vastasel juhul käsitleb R muutujaid numbrilistena. Vaadake allolevat näidet.
Kohandage graafikut
Graafiku kohandamiseks saab edastada neli argumenti:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"` - `alpha`: Control density of the color - `fill`: Change the color of the bar - `size`: Control the size the bar
Muutke ribade värvi
Saate muuta ribade värvi. Pange tähele, et ribade värvid on kõik sarnased.
# Change the color of the bars ggplot(mtcars, aes(x = factor(cyl))) + geom_bar(fill = "coral") + theme_classic()
Koodi selgitus
- Ribade värve juhib geomeetrilise objekti sees (st mitte ggplot()) kaardistus aes(). Värvi saab muuta täiteargumentidega. Siin valite korallivärvi.
Väljund:
Saate kasutada seda koodi:
grDevices::colors()
et näha kõiki R-s saadaolevaid värve. Seal on umbes 650 värvi.
Muutke intensiivsust
Saate suurendada või vähendada ribade värvi intensiivsust
# Change intensity ggplot(mtcars, aes(factor(cyl))) + geom_bar(fill = "coral", alpha = 0.5) + theme_classic()
Koodi selgitus
- Riba intensiivsuse suurendamiseks/vähendamiseks saate muuta alfa väärtust. Suur alfa suurendab intensiivsust ja madal alfa vähendab intensiivsust. alfa on vahemikus 0 kuni 1. Kui 1, siis on värv sama, mis paletil. Kui 0, on värv valge. Valite alfa = 0.1.
Väljund:
Värv rühmade kaupa
Saate muuta ribade värve, mis tähendab iga rühma jaoks ühte erinevat värvi. Näiteks cyl muutujal on kolm taset, siis saate tulpdiagrammi joonistada kolme värviga.
# Color by group ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) + geom_bar()
Koodi selgitus
- Argumendi täitmine aes() sees võimaldab muuta riba värvi. Värvi muutmiseks määrate täitmise = x-telje muutuja. Teie näites on x-telje muutuja cyl; täitmine = tegur (tsiil)
Väljund:
Lisage ribadele rühm
Saate y-telje täiendavalt poolitada mõne muu faktori taseme alusel. Näiteks saate silindri tüübi alusel lugeda automaat- ja manuaalkäigukasti arvu.
Te jätkate järgmiselt:
- 1. toiming: looge andmeraam mtcarsi andmekogumiga
- 2. samm: Märkige muutuja am automaatkäigukasti puhul tähisega auto ja manuaalkäigukasti puhul man. Teisendage am ja cyl teguriks, nii et te ei peaks funktsioonis ggplot() kasutama faktorit().
- 3. samm: joonistage tulpdiagramm, et loendada ülekande arv silindrite kaupa
library(dplyr) # Step 1 data <- mtcars % > % #Step 2 mutate(am = factor(am, labels = c("auto", "man")), cyl = factor(cyl))
Teil on andmestik valmis, saate graafiku joonistada;
# Samm 3
ggplot(data, aes(x = cyl, fill = am)) + geom_bar() + theme_classic()
Koodi selgitus
- Ggpplot() sisaldab andmestiku andmeid ja aes().
- Funktsiooni aes() lisate muutuja x-telje ja seda, millist muutujat on vaja riba täitmiseks (st am)
- geom_bar(): loo tulpdiagramm
Väljund:
Kaardistamine täidab riba kahe värviga, üks iga taseme jaoks. Rühma on lihtne muuta, valides andmekogumis muid tegurimuutujaid.
Lintdiagramm protsentides
Toorarvu asemel saate riba visualiseerida protsentides.
# Tulpdiagramm protsentides
ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = "fill") + theme_classic()
Koodi selgitus
- Kasutage argumendis geom_bar() position = "fill", et luua y-teljel protsentidega graafik.
Väljund:
Kõrvuti küljeribad
Lintdiagrammi on lihtne joonistada koos rühma muutujaga kõrvuti.
# Bar chart side by side ggplot(data, aes(x = cyl, fill = am)) + geom_bar(position = position_dodge()) + theme_classic()
Koodi selgitus
- position=position_dodge(): ütleb selgesõnaliselt, kuidas ribasid paigutada
Väljund:
Histogramm
Lintdiagrammi õpetuse teises osas saate esitada muutujate rühma väärtustega y-teljel.
Teie eesmärk on luua graafik, kus on näidatud iga silindritüübi keskmine miil galloni kohta. Informatiivse graafiku koostamiseks toimige järgmiselt.
- 1. samm: looge uus muutuja keskmise miili galloni kohta silindri kaupa
- 2. samm: looge põhiline histogramm
- 3. samm: muutke orientatsiooni
- 4. samm: muutke värvi
- 5. samm: muutke suurust
- 6. samm: lisage graafikule sildid
Step 1) Looge uus muutuja
Loote andmeraami nimega data_histogram, mis lihtsalt tagastab keskmise miili galloni kohta autos olevate silindrite arvu järgi. Kutsute seda uut muutujat mean_mpg ja ümardate keskmise kahe kümnendkohaga.
# Samm 1
data_histogram <- mtcars % > % mutate(cyl = factor(cyl)) % > % group_by(cyl) % > % summarize(mean_mpg = round(mean(mpg), 2))
Step 2) Looge põhiline histogramm
Saate joonistada histogrammi. See ei ole valmis suhtlema, et see kliendile kohale toimetada, kuid annab meile intuitsiooni trendi kohta.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity")
Koodi selgitus
- Aes()-l on nüüd kaks muutujat. Muutuja cyl viitab x-teljele ja keskmine_mpg on y-telg.
- Peate edastama argumendi stat=”identity”, et viidata y-telje muutujale arvväärtusena. geom_bar kasutab vaikeväärtusena stat=”bin”.
Väljund:
Step 3) Muutke orientatsiooni
Saate muuta graafiku orientatsiooni vertikaalsest horisontaalseks.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity") + coord_flip()
Koodi selgitus
- Graafiku orientatsiooni saab juhtida funktsiooniga coord_flip().
Väljund:
Step 4) Muuda värvi
Tulbade värve saab eristada vastavalt x-telje muutuja faktoritasemele.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity") + coord_flip() + theme_classic()
Koodi selgitus
- Graafiku saab joonistada rühmade kaupa, kasutades vastendust fill=cyl. R hoolitseb automaatselt värvide eest, lähtudes cyl muutuja tasemetest
Väljund:
Step 5) Muutke suurust
Graafiku ilusamaks muutmiseks vähendate riba laiust.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity", width = 0.5) + coord_flip() + theme_classic()
Koodi selgitus
- Laiuse argument geom_bar() sees määrab riba suurust. Suurem väärtus suurendab laiust.
- Pange tähele, et salvestate graafiku muutujagraafikus. Teete seda, sest järgmine samm ei muuda muutujagraafiku koodi. See parandab koodi loetavust.
Väljund:
Step 6) Lisage graafikule sildid
Viimane samm seisneb muutuja mean_mpg väärtuse lisamises sildile.
graph + geom_text(aes(label = mean_mpg), hjust = 1.5, color = "white", size = 3) + theme_classic()
Koodi selgitus
- Funktsioon geom_text() on kasulik teksti esteetika kontrollimiseks.
- label=: lisage ribade sisse silt
- mean_mpg: kasutage sildi jaoks muutujat mean_mpg
- hlihtsalt juhib sildi asukohta. Väärtused, mis on suletud 1-le, kuvavad sildi riba ülaosas ja kõrgemad väärtused toovad sildi alla. Kui graafiku suund on vertikaalne, muutke hjust väärtuseks vjust.
- color=”white”: muutke teksti värvi. Siin kasutate valget värvi.
- suurus=3: määrake teksti suurus.
Väljund:
kokkuvõte
Lintdiagramm on kasulik, kui x-telg on kategooriline muutuja. Y-telg võib olla kas loendus või kokkuvõtlik statistika. Allolev tabel võtab kokku, kuidas juhtida tulpdiagrammi ggplot2 abil:
Eesmärk | kood |
---|---|
Loendama |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Loendage erinevat värvi täidisega |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Arvestada gruppidega, virnastatud |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Loendage rühmadega, kõrvuti |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Loenda koos rühmadega, virnastatud % |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Väärtused |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |