Diagrammas ir datu analīzes procesa trešā daļa. Pirmā daļa ir par datu iegūšanu , otrā daļa - ar datu tīrīšanu un manipulēšanu . Visbeidzot, datu zinātniekam var būt nepieciešams grafiski paziņot savus rezultātus .
Datu zinātnieka darbu var pārskatīt nākamajā attēlā
- Datu zinātnieka pirmais uzdevums ir definēt pētījuma jautājumu. Šis pētījuma jautājums ir atkarīgs no projekta mērķiem un mērķiem.
- Pēc tam viens no spilgtākajiem uzdevumiem ir funkciju inženierija. Datu zinātniekam ir jāapkopo, jākalpo un jātīra dati
- Kad šī darbība ir pabeigta, viņš var sākt izpētīt datu kopu. Dažreiz jauna atklājuma dēļ ir nepieciešams precizēt un mainīt sākotnējo hipotēzi.
- Kad ir sasniegta paskaidrojošā analīze, datu zinātniekam jāņem vērā lasītāja spēja saprast pamatā esošos jēdzienus un modeļus .
- Viņa rezultāti jāuzrāda tādā formātā, lai to varētu saprast visas ieinteresētās puses. Viena no labākajām rezultātu paziņošanas metodēm ir diagramma .
- Grafiki ir neticams rīks sarežģītas analīzes vienkāršošanai.
Šajā apmācībā jūs uzzināsiet
- ggplot2 pakete
- Izkliede
- Mainīt asi
- Izkliedes diagramma ar atbilstošām vērtībām
- Pievienojiet diagrammai informāciju
- Pārdēvēt x asi un y asi
- Kontrolējiet svarus
- Tēma
- Saglabāt zemes gabalus
ggplot2 pakete
Šī apmācības daļa ir vērsta uz to, kā izveidot grafikus / diagrammas ar R.
Šajā apmācībā jūs izmantosiet paketi ggplot2. Šī pakete ir veidota, balstoties uz Wilkinsona 2005. gada grāmatas Gramatikas grafika konsekvento pamatu. Ggplot2 ir ļoti elastīgs, tajā ir iekļautas daudzas tēmas un sižeta specifikācijas augstā abstrakcijas līmenī. Izmantojot ggplot2, jūs nevarat uzzīmēt trīsdimensiju grafiku un izveidot interaktīvu grafiku.
Programmā ggplot2 diagramma sastāv no šādiem argumentiem:
- dati
- estētiskā kartēšana
- ģeometriskais objekts
- statistikas pārveidojumi
- svari
- koordinātu sistēma
- pozīcijas pielāgošana
- šķautne
Jūs mācīsities, kā kontrolēt šos argumentus apmācībā.
Ggplot2 pamata sintakse ir:
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()`
Izkliede
Apskatīsim, kā ggplot darbojas ar mtcars datu kopu. Jūs sākat, uzzīmējot mpg mainīgā un drat mainīgā izkliedes diagrammu.
Pamata izkliedes diagramma
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
Kods Paskaidrojums
- Vispirms jūs nododat datu kopu mtcars vietnei ggplot.
- Argumenta aes () iekšpusē jūs pievienojat x asi un y asi.
- Zīme + nozīmē, ka vēlaties, lai R turpina lasīt kodu. Tas padara kodu vieglāk lasāmu, to pārkāpjot.
- Ģeometriskajam objektam izmantojiet geom_point ().
Izeja:
Izkliedēšanas grafiks ar grupām
Dažreiz var būt interesanti nošķirt vērtības pēc datu grupas (ti, faktora līmeņa datiem).
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
Kods Paskaidrojums
- Geom_point () iekšpusē esošie aes () kontrolē grupas krāsu. Grupai jābūt faktora mainīgajai. Tādējādi jūs pārveidojat mainīgo pārnesumu koeficientā.
- Kopumā jums ir koda kodi (krāsa = faktors (pārnesums)), kas maina punktu krāsu.
Izeja:
Mainīt asi
Datu pārvērtēšana ir liela daļa no zinātnieku darba. Retos gadījumos dati ir jauka zvana formā. Viens no risinājumiem, kā padarīt jūsu datus mazāk jutīgus pret nepieļaujamajiem lielumiem, ir to mērogošana.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
Kods Paskaidrojums
- Jūs pārveidojat x un y mainīgos log () tieši aes () kartēšanas iekšpusē.
Ņemiet vērā, ka var izmantot jebkuru citu transformāciju, piemēram, standartizāciju vai normalizāciju.
Izeja:
Izkliedes diagramma ar atbilstošām vērtībām
Diagrammā varat pievienot vēl vienu informācijas līmeni. Jūs varat uzzīmēt lineārās regresijas piemēroto vērtību.
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
Kods Paskaidrojums
- diagramma: jūs glabājat savu diagrammu mainīgajā grafikā. Tas ir noderīgi turpmākai lietošanai vai izvairieties no pārāk sarežģītas kodu rindas
- Arguments stat_smooth () kontrolē izlīdzināšanas metodi
- method = "lm": Lineārā regresija
- col = "# C42126": Līnijas sarkanās krāsas kods
- se = FALSE: nerādīt standarta kļūdu
- izmērs = 1: līnijas izmērs ir 1
Izeja:
Ņemiet vērā, ka ir pieejamas citas izlīdzināšanas metodes
- glm
- gam
- loess: noklusējuma vērtība
- loka
Pievienojiet diagrammai informāciju
Līdz šim mēs diagrammās neesam pievienojuši informāciju. Grafikiem jābūt informatīviem. Lasītājam vajadzētu redzēt datu analīzes stāstu, vienkārši aplūkojot diagrammu, neatsaucoties uz papildu dokumentāciju. Tādējādi grafikiem ir vajadzīgas labas etiķetes. Jūs varat pievienot iezīmes ar funkciju labs ().
Laboratorijas () pamata sintakse ir:
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")
Pievienojiet virsrakstu
Viena obligāta pievienojamā informācija, protams, ir nosaukums.
my_graph +labs(title = "Plot Mile per hours and drat, in log")
Kods Paskaidrojums
- my_graph: Jūs izmantojat saglabāto diagrammu. Tas ļauj izvairīties no visu kodu pārrakstīšanas katru reizi, kad diagrammai pievienojat jaunu informāciju.
- Jūs iesaiņojat nosaukumu laboratorijā ().
- Līnijas sarkanās krāsas kods
- se = FALSE: nerādīt standarta kļūdu
- izmērs = 1: līnijas izmērs ir 1
Izeja:
Pievienojiet nosaukumu ar dinamisku nosaukumu
Dinamiskais nosaukums ir noderīgs, lai virsrakstā pievienotu precīzāku informāciju.
Statiskā teksta un dinamiskā teksta drukāšanai var izmantot funkciju paste (). Pasta () pamata sintakse ir:
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
Piemērs:
A <-2010paste("The first year is", A)
Izeja:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Izeja:
## [1] "The first year is 2010 and the last year is 2018"
Mūsu grafikam varat pievienot dinamisku nosaukumu, proti, mpg vidējo vērtību.
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
Kods Paskaidrojums
- Jūs izveidojat mpg vidējo vērtību ar vidējo (mtcars $ mpg), kas saglabāts mainīgā mean_mpg
- Jūs izmantojat paste () ar mean_mpg, lai izveidotu dinamisku virsrakstu, atgriežot mpg vidējo vērtību
Izeja:
Pievienojiet apakšvirsrakstu
Divas papildu detaļas var padarīt jūsu diagrammu precīzāku. Jūs runājat par apakšvirsrakstu un parakstu. Apakšvirsraksts atrodas tieši zem nosaukuma. Paraksts var informēt par to, kurš veica aprēķinu, un datu avotu.
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
Kods Paskaidrojums
- Laboratorijas iekšpusē () jūs pievienojāt:
- title = "Attiecība starp jūdzi stundā un dratu": pievienojiet nosaukumu
- subtitle = "Attiecību sadalījums pa pārnesumu klasēm": pievienojiet apakšvirsrakstu
- caption = "Autoru pašu aprēķins: pievienojiet parakstu
- Katru jauno informāciju atdala ar komatu,
- Ņemiet vērā, ka jūs pārtraucat koda rindas. Tas nav obligāti, un tas tikai palīdz vieglāk lasīt kodu
Izeja:
Pārdēvēt x asi un y asi
Pats mainīgais lielums datu kopā ne vienmēr var būt precīzi izteikts vai pēc vienošanās izmantot _, ja ir vairāki vārdi (piemēram, GDP_CAP). Jūs nevēlaties, lai šāds nosaukums tiktu parādīts jūsu diagrammā. Ir svarīgi mainīt nosaukumu vai pievienot sīkāku informāciju, piemēram, vienības.
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")
Kods Paskaidrojums
- Laboratorijas iekšpusē () jūs pievienojāt:
- x = "Drat definīcija": mainiet x ass nosaukumu
- y = "Jūdze stundā": mainiet y ass nosaukumu
Izeja:
Kontrolējiet svarus
Jūs varat kontrolēt ass mērogu.
Funkcija seq () ir ērta, ja jāizveido skaitļu secība. Pamata sintakse ir:
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`
Piemēram, ja vēlaties izveidot diapazonu no 0 līdz 12 ar soli 3, jums būs četri skaitļi, 0 4 8 12
seq(0, 12,4)
Izeja:
## [1] 0 4 8 12
Jūs varat kontrolēt x ass un y ass skalu, kā norādīts zemāk
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")
Kods Paskaidrojums
- Funkcija scale_y_continuous () kontrolē y asi
- Funkcija scale_x_continuous () kontrolē x asi .
- Parametru pārtraukumi kontrolē ass sadalījumu. Jūs varat manuāli pievienot skaitļu secību vai izmantot seq () funkciju:
- sek (1, 3.6, pēc = 0.2): izveidojiet sešus skaitļus no 2,4 līdz 3,4 ar soli 3
- sek (1, 1,6, pēc = 0,1): izveidojiet septiņus skaitļus no 1 līdz 1,6 ar soli 1
Izeja:
Tēma
Visbeidzot, R ļauj mums pielāgot zemes gabalu ar dažādām tēmām. Bibliotēkā ggplot2 ir iekļautas astoņas tēmas:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- theme_minimal ()
- tēma_pelēka ()
- 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")
Izeja:
Saglabāt zemes gabalus
Pēc visām šīm darbībām ir pienācis laiks saglabāt un kopīgot savu diagrammu. Jūs pievienojat ggsave ('FILES NOSAUKUMS') tūlīt pēc diagrammas uzzīmēšanas, un tā tiks saglabāta cietajā diskā.
Diagramma tiek saglabāta darba direktorijā. Lai pārbaudītu darba direktoriju, varat palaist šo kodu:
directory <-getwd()directory
Uzzīmēsim jūsu fantastisko grafiku, saglabāsim to un pārbaudīsim atrašanās vietu
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")
Izeja:
ggsave("my_fantastic_plot.png.webp")
Izeja:
## Saving 5 x 4 in image
Piezīme : Tikai pedagoģiskiem nolūkiem mēs izveidojām funkciju ar nosaukumu open_folder (), lai atvērtu direktoriju mapi jums. Jums vienkārši jāpalaiž zemāk redzamais kods un jāskatās, kur attēls tiek glabāts. Jums vajadzētu redzēt faila nosaukumu 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)
Kopsavilkums
Zemāk esošajā tabulā varat apkopot argumentus, lai izveidotu izkliedes diagrammu:
Mērķis |
Kods |
---|---|
Pamata izkliedes diagramma |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Izkliedēšanas grafiks ar krāsu grupu |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Pievienojiet atbilstošās vērtības |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Pievieno nosaukumu |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Pievienojiet apakšvirsrakstu |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Pārdēvēt x |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Pārdēvēt y |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Kontrolējiet mērogu |
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) |
Izveidot žurnālus |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
Tēma |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Saglabāt |
ggsave("my_fantastic_plot.png.webp") |