Szórjon ábrát R-ben a ggplot2 segítségével (a példával)

Tartalomjegyzék:

Anonim

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 <-2018

paste("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")