A grafikonok az adatelemzés folyamatának harmadik részét képezik. Az első rész az adatok kinyeréséről szól , a második rész az adatok tisztításával és kezelésével foglalkozik . Végül előfordulhat, hogy az adatkutatónak grafikusan kell közölnie eredményeit .
Az adattudós munkája a következő képen tekinthető át
- Az adattudós első feladata egy kutatási kérdés meghatározása. Ez a kutatási kérdés a projekt célkitűzéseitől függ.
- Ezt követően az egyik legkiemelkedőbb feladat a funkciótervezés. Az adatkutatónak össze kell gyűjtenie, manipulálnia és meg kell tisztítania az adatokat
- Amikor ez a lépés befejeződött, elkezdheti felfedezni az adatkészletet. Néha szükség van az eredeti hipotézis finomítására és megváltoztatására egy új felfedezés miatt.
- A magyarázó elemzés megvalósításakor az adatkutatónak figyelembe kell vennie az olvasó képességét az alapul szolgáló fogalmak és modellek megértésére .
- Eredményeit minden érintett számára érthető formában kell bemutatni. Az eredmények közlésének egyik legjobb módja egy grafikon .
- A grafikonok hihetetlen eszköz az összetett elemzés egyszerűsítésére.
Ebben az oktatóanyagban megtanulja-
- ggplot2 csomag
- Scatterplot
- Tengely módosítása
- Szórási diagram illesztett értékekkel
- Adjon információt a grafikonhoz
- Nevezze át az x tengelyt és az y tengelyt
- Irányítsd a mérleget
- Téma
- Telkek mentése
ggplot2 csomag
Az oktatóanyag ezen része arra összpontosít, hogyan készítsünk grafikonokat / diagramokat R-vel.
Ebben az oktatóanyagban a ggplot2 csomagot fogja használni. Ez a csomag a Grammar of graphics (Wilkinson, 2005) című könyv következetes alapjaira épül. A ggplot2 nagyon rugalmas, sok témát és cselekményspecifikációt tartalmaz magas absztrakciós szinten. A ggplot2 használatával nem lehet háromdimenziós grafikákat ábrázolni és interaktív grafikákat létrehozni.
A ggplot2 fájlban a grafikon a következő argumentumokból áll:
- adat
- esztétikai feltérképezés
- geometriai objektum
- statisztikai transzformációk
- Mérleg
- koordináta-rendszer
- helyzetbeállítások
- faceting
Az oktatóanyagban megtudhatja, hogyan vezérelheti ezeket az érveket.
A ggplot2 alapvető szintaxisa a következő:
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()`
Scatterplot
Nézzük meg, hogyan működik a ggplot az mtcars adatkészlettel. Először az mpg változó és a drat változó szétszórt ábrájának megrajzolásával kezdjük.
Alapvető szórási diagram
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
Kód Magyarázat
- Először adja át az mtcars adatkészletet a ggplot-nak.
- Az aes () argumentumon belül hozzáadjuk az x tengelyt és az y tengelyt.
- A + jel azt jelenti, hogy azt akarod, hogy R folyamatosan olvassa a kódot. Megtörés útján olvashatóbbá teszi a kódot.
- Használja a geom_point () elemet a geometriai objektumhoz.
Kimenet:
Szórványdiagram csoportokkal
Néha érdekes lehet megkülönböztetni az értékeket egy adatcsoport (azaz faktorszintű adatok) alapján.
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
Kód Magyarázat
- A geom_point () belsejében lévő aes () szabályozza a csoport színét. A csoportnak faktorváltozónak kell lennie. Így a változó fokozatot tényezővé alakítja.
- Összességében megvan a kód aes (color = factor (gear)), amelyek megváltoztatják a pontok színét.
Kimenet:
Tengely módosítása
Az adatok átméretezése az adattudós munkájának nagy része. Ritka esetekben az adatok szép harang alakban érkeznek. Az egyik megoldás arra, hogy az adatait kevésbé érzékeny legyen a kiugró értékekre, az átméretezés.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
Kód Magyarázat
- A log () x és y változóit közvetlenül az aes () leképezésen belül alakítja át.
Megjegyezzük, hogy bármilyen más transzformáció alkalmazható, például szabványosítás vagy normalizálás.
Kimenet:
Szórási diagram illesztett értékekkel
Hozzáadhat egy másik szintű információt a grafikonhoz. Ábrázolhatja a lineáris regresszió illesztett értékét.
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
Kód Magyarázat
- grafikon: Grafikonját a változó grafikonba tárolja. Hasznos a további használat során, vagy elkerülheti a túl összetett kódsorokat
- A stat_smooth () argumentum vezérli a simítási módszert
- method = "lm": Lineáris regresszió
- col = "# C42126": Kód a vonal piros színéhez
- se = HAMIS: Ne jelenítse meg a szokásos hibát
- méret = 1: a vonal mérete 1
Kimenet:
Vegye figyelembe, hogy más simítási módszerek is rendelkezésre állnak
- glm
- gam
- lösz: alapértelmezett érték
- abroncs
Adjon információt a grafikonhoz
Eddig nem adtunk hozzá információkat a grafikonokhoz. A grafikonoknak informatívaknak kell lenniük. Az olvasónak meg kell látnia az adatelemzés mögött meghúzódó történetet, csupán a grafikon megtekintésével, anélkül, hogy további dokumentációra hivatkozna. Ezért a grafikonoknak jó címkékre van szükségük. Labs () funkcióval hozzáadhat címkéket.
A lab () alapvető szintaxisa a következő:
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")
Adjon címet
Egy kötelezően hozzáadandó információ nyilvánvalóan egy cím.
my_graph +labs(title = "Plot Mile per hours and drat, in log")
Kód Magyarázat
- my_graph: A tárolt grafikont használja. Ez elkerüli az összes kód átírását minden alkalommal, amikor új információt ad a grafikonhoz.
- Becsomagolja a címet a laborba ().
- Kód a vonal piros színéhez
- se = HAMIS: Ne jelenítse meg a szokásos hibát
- méret = 1: a vonal mérete 1
Kimenet:
Adjon hozzá címet dinamikus névvel
A dinamikus cím segít pontosítani a címet.
A paste () függvény segítségével statikus szöveget és dinamikus szöveget nyomtathat. A paszta () alapvető szintaxisa:
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
Példa:
A <-2010paste("The first year is", A)
Kimenet:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Kimenet:
## [1] "The first year is 2010 and the last year is 2018"
Dinamikus nevet adhat a grafikonunkhoz, mégpedig az mpg átlagát.
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
Kód Magyarázat
- Az mpg átlagát az mean_mpg változóban tárolt átlaggal (mtcars $ mpg) hozza létre
- A paste () segítségével a mean_mpg paranccsal létrehozhat egy dinamikus címet, amely visszaadja az mpg átlagértékét
Kimenet:
Adjon hozzá egy feliratot
Két további részlet egyértelműbbé teheti a grafikonját. Az alcímről és a feliratról beszélsz. Az alcím közvetlenül a cím alatt megy. A felirat tájékoztatást adhat arról, hogy ki végezte a számítást, és az adatok forrásáról.
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
Kód Magyarázat
- A laboratóriumban () hozzáadta:
- title = "A mérföld / óra és a drat viszonya": Adjon címet
- subtitle = "Kapcsolat bontás fokozatosztály szerint": Felirat hozzáadása
- caption = "A szerzők saját számítása: Felirat hozzáadása
- Minden új információt vesszővel választ el,,
- Ne feledje, hogy megszakítja a kódsorokat. Ez nem kötelező, és csak a kód könnyebben olvasható
Kimenet:
Nevezze át az x tengelyt és az y tengelyt
Maga a változók az adatkészletben nem mindig lehetnek egyértelműek, vagy megállapodás szerint használja a _-t, ha több szó van (azaz GDP_CAP). Nem szeretné, hogy az ilyen név megjelenjen a grafikonon. Fontos a név megváltoztatása vagy további részletek, például az egységek hozzáadása.
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")
Kód Magyarázat
- A laboratóriumban () hozzáadta:
- x = "Drat definíció": Az x tengely nevének módosítása
- y = "mérföld per óra": Az y tengely nevének módosítása
Kimenet:
Irányítsd a mérleget
Szabályozhatja a tengely méretarányát.
A seq () függvény akkor kényelmes, ha számsort kell létrehoznia. Az alapvető szintaxis:
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`
Például, ha 0 és 12 közötti tartományt szeretne létrehozni 3 lépésben, akkor négy száma lesz, 0 4 8 12
seq(0, 12,4)
Kimenet:
## [1] 0 4 8 12
Az x tengely és az y tengely skáláját az alábbiak szerint szabályozhatja
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")
Kód Magyarázat
- A scale_y_continuous () függvény vezérli az y tengelyt
- A scale_x_continuous () függvény vezérli az x tengelyt .
- A paramétertörések vezérlik a tengely felosztását. Manuálisan hozzáadhatja a számsorozatot, vagy használhatja a seq () függvényt:
- szekvencia (1, 3.6, by = 0.2): Hozzon létre hat számot 2,4-től 3,4-ig 3 lépéssel
- szekvencia (1, 1,6, by = 0,1): Hozzon létre hét számot 1-től 1,6-ig 1-es lépéssel
Kimenet:
Téma
Végül az R lehetővé teszi számunkra, hogy testre szabjuk a különböző témájú cselekményeket. A ggplot2 könyvtár nyolc témát tartalmaz:
- theme_bw ()
- téma_fény ()
- theme_classis ()
- theme_linedraw ()
- téma_sötét ()
- téma_minimális ()
- téma_szürke ()
- 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")
Kimenet:
Telkek mentése
Mindezen lépések elvégzése után ideje elmenteni és megosztani a grafikont. A grafikon megrajzolása után azonnal hozzáadja a ggsave-t ('A FÁJL NEVE'), és az a merevlemezen lesz tárolva.
A grafikon a munkakönyvtárba kerül. A munkakönyvtár ellenőrzéséhez futtassa a következő kódot:
directory <-getwd()directory
Nézzük meg a fantasztikus grafikonját, mentsük el és ellenőrizzük a helyet
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")
Kimenet:
ggsave("my_fantastic_plot.png.webp")
Kimenet:
## Saving 5 x 4 in image
Megjegyzés : Csak pedagógiai célokra hoztunk létre egy open_folder () nevű függvényt, amely megnyitja az Ön számára a könyvtár mappát. Csak futtatnia kell az alábbi kódot, és meg kell néznie, hol tárolja a képet. Látnia kell a my_fantastic_plot.png.webp nevű fájlokat.
# 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)
Összegzés
Az alábbi táblázatban összefoglalhatja az argumentumokat egy szórási diagram létrehozásához:
Célkitűzés |
Kód |
---|---|
Alapvető szórási diagram |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Szórványdiagram színcsoporttal |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Adja hozzá az illesztett értékeket |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Adj címet |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Felirat hozzáadása |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Nevezze át x |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Nevezze át y |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Irányítsd a skálát |
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) |
Hozzon létre naplókat |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
Téma |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Mentés |
ggsave("my_fantastic_plot.png.webp") |