Распрши цртеж у Р користећи ггплот2 (са примером)

Преглед садржаја:

Anonim

Графикони су трећи део процеса анализе података. Први део односи се на издвајање података , други део се бави чишћењем и манипулацијом подацима . Коначно, научник података ће можда требати да графички саопшти своје резултате .

Посао научника за податке може се прегледати на следећој слици

  • Први задатак научника за податке је дефинисање истраживачког питања. Ово истраживачко питање зависи од циљева и циљева пројекта.
  • После тога, један од најистакнутијих задатака је инжењеринг карактеристика. Научник података треба да прикупи, манипулише и очисти податке
  • Када је овај корак завршен, он може започети истраживање скупа података. Понекад је неопходно усавршити и променити првобитну хипотезу због новог открића.

  • Када се постигне експланаторна анализа, научник података мора узети у обзир способност читаоца да разуме основне концепте и моделе .
  • Његови резултати треба да буду представљени у формату који могу разумети све заинтересоване стране. Једна од најбољих метода за саопштавање резултата је путем графикона .
  • Графови су невероватно средство за поједностављивање сложене анализе.

У овом упутству ћете научити-

  • ггплот2 пакет
  • Дијаграм расејања
  • Промени осу
  • Распршена парцела са уклопљеним вредностима
  • Додајте информације на графикон
  • Преименујте осе к и осе и
  • Контролишите вагу
  • Тема
  • Саве Плотс

ггплот2 пакет

Овај део водича фокусира се на то како направити графиконе / графиконе са Р.

У овом упутству користићете пакет ггплот2. Овај пакет заснован је на доследној основи књиге Граматика графика коју је написао Вилкинсон, 2005. ггплот2 је врло флексибилан, укључује многе теме и спецификацију заплета на високом нивоу апстракције. Са ггплот2 не можете да нацртате тродимензионалну графику и креирате интерактивну графику.

У ггплот2, графикон се састоји од следећих аргумената:

  • подаци
  • естетско мапирање
  • геометријски објекат
  • статистичке трансформације
  • ваге
  • координатни систем
  • подешавања положаја
  • фасетирање

Научићете како да контролишете те аргументе у водичу.

Основна синтакса ггплот2 је:

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()`

Дијаграм расејања

Погледајмо како ггплот ради са скупом података мтцарс. Почињете са цртањем распршеног дијаграма променљиве мпг и променљиве драт.

Основна распршена парцела

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Објашњење кода

  • Прво проследите скуп података мтцарс ггплот-у.
  • Унутар аргумента аес () додајете к-осу и и-осу.
  • Знак + значи да желите да Р настави да чита код. Код чини читљивијим тако што га разбија.
  • Користите геом_поинт () за геометријски објекат.

Излаз:

Разбацана завера са групама

Понекад може бити занимљиво разликовати вредности према групи података (тј. Подаци на нивоу фактора).

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Објашњење кода

  • Аес () унутар геом_поинт () контролише боју групе. Група треба да буде фактор променљиве. Дакле, променљиви преносник претварате у фактор.
  • Све у свему, имате код аес (боја = фактор (брзина)) који мења боју тачака.

Излаз:

Промени осу

Прерачунавање података велики је део посла научника за податке. Подаци се ретко појављују у лепом облику звона. Једно решење да своје податке учините мање осетљивим на одступања је њихово скалирање.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Објашњење кода

  • Промените к и и променљиве у лог () директно унутар аес () мапирања.

Имајте на уму да се може применити било која друга трансформација, попут стандардизације или нормализације.

Излаз:

Распршена парцела са уклопљеним вредностима

На графикон можете додати још један ниво информација. Можете нацртати уграђену вредност линеарне регресије.

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

Објашњење кода

  • граф: Спремите свој граф у променљиви граф. Корисно је за даљу употребу или избегавање превише сложених редова кодова
  • Аргумент стат_смоотх () контролише методу заглађивања
  • метход = "лм": Линеарна регресија
  • цол = "# Ц42126": Шифра за црвену боју линије
  • се = ФАЛСЕ: Не приказуј стандардну грешку
  • величина = 1: величина линије је 1

Излаз:

Имајте на уму да су доступне и друге методе заглађивања

  • глм
  • гам
  • лес: подразумевана вредност
  • обод

Додајте информације на графикон

До сада нисмо додали информације у графиконе. Графикони морају бити информативни. Читалац би требао видети причу која стоји иза анализе података само гледајући графикон без позивања на додатну документацију. Дакле, графикони требају добре ознаке. Ознаке можете да додате помоћу функције лабс ().

Основна синтакса за лаб () је:

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

Додајте наслов

Једна обавезна информација коју треба додати је очигледно наслов.

my_graph +labs(title = "Plot Mile per hours and drat, in log")

Објашњење кода

  • ми_грапх: Користите граф који сте сачували. Избегава преписивање свих кодова сваки пут када додате нове информације на графикон.
  • Наслов замотате у лабораторију ().
  • Шифра за црвену боју линије
  • се = ФАЛСЕ: Не приказуј стандардну грешку
  • величина = 1: величина линије је 1

Излаз:

Додајте наслов са динамичким именом

Динамичан наслов је користан за додавање прецизнијих информација у наслов.

Функцију пасте () можете користити за штампање статичног и динамичког текста. Основна синтакса пасте () је:

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

Пример:

A <-2010paste("The first year is", A)

Излаз:

## [1] "The first year is 2010"
B <-2018

paste("The first year is", A, "and the last year is", B)

Излаз:

## [1] "The first year is 2010 and the last year is 2018" 

На наш графикон можете додати динамичко име, односно просек мпг.

mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))

Објашњење кода

  • Просек мпг креирате са средњом вредношћу (мтцарс $ мпг) ускладиштеном у променљивој меан_мпг
  • Користите пасте () са меан_мпг да бисте креирали динамички наслов који враћа средњу вредност мпг

Излаз:

Додајте поднаслов

Два додатна детаља могу ваш графикон учинити експлицитнијим. Говорите о поднаслову и натпису. Поднаслов иде одмах испод наслова. Натпис може да вас обавести о томе ко је извршио израчунавање и извор података.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Објашњење кода

  • Унутар лабораторије () сте додали:
    • титле = "Веза између миље по сату и драта": Додајте наслов
    • субтитле = "Веза подељена према класи зупчаника": Додајте поднаслов
    • цаптион = "Аутори рачунају сопствено: додајте наслов
    • Сваку нову информацију одвајате зарезом,,
  • Имајте на уму да прекидате редове кода. Није обавезно и помаже само лакше читање кода

Излаз:

Преименујте осе к и осе и

Сама променљива у скупу података не мора увек бити експлицитна или по договору користи _ када постоји више речи (тј. ГДП_ЦАП). Не желите да се такво име појављује на вашем графикону. Важно је променити име или додати више детаља, попут јединица.

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

Објашњење кода

  • Унутар лабораторије () сте додали:
    • к = "Драт дефиниција": Промените име к-осе
    • и = "Миља на сат": Промените име оси и

Излаз:

Контролишите вагу

Можете да контролишете размеру осе.

Функција сек () је погодна када треба да креирате низ бројева. Основна синтакса је:

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`

На пример, ако желите да направите опсег од 0 до 12 са кораком од 3, имаћете четири броја, 0 4 8 12

seq(0, 12,4)

Излаз:

## [1] 0 4 8 12 

Можете да контролишете размере оси к и осе и као што је приказано испод

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

Објашњење кода

  • Функција сцале_и_цонтинуоус () контролише и-осу
  • Функција сцале_к_цонтинуоус () контролише к-осу .
  • Параметар бреак контролише поделу осе. Можете ручно додати низ бројева или користити функцију сек ():
    • сек (1, 3.6, би = 0.2): Направите шест бројева од 2.4 до 3.4 са кораком 3
    • сек (1, 1.6, би = 0.1): Направите седам бројева од 1 до 1.6 са кораком од 1

Излаз:

Тема

Коначно, Р нам омогућава да прилагодимо заплет различитим темама. Библиотека ггплот2 укључује осам тема:

  • тхеме_бв ()
  • тхеме_лигхт ()
  • тхеме_цлассис ()
  • тхеме_линедрав ()
  • тхеме_дарк ()
  • тхеме_минимал ()
  • тхеме_граи ()
  • тхеме_воид ()
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")

Излаз:

Саве Плотс

Након свих ових корака, време је да сачувате и делите свој графикон. Додајете ггсаве ('ИМЕ ДАТОТЕКЕ) одмах након што нацртате графикон и он ће бити сачуван на чврстом диску.

Графикон је сачуван у радном директоријуму. Да бисте проверили радни директоријум, можете покренути овај код:

directory <-getwd()directory 

Нацртајмо ваш фантастични графикон, сачувамо га и проверимо локацију

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

Излаз:

ggsave("my_fantastic_plot.png.webp")

Излаз:

## Saving 5 x 4 in image

Напомена : Само у педагошке сврхе створили смо функцију која се зове опен_фолдер () да би вам отворили директоријум директоријума. Само треба да покренете доњи код и видите где се слика чува. Требали бисте видети имена датотека ми_фантастиц_плот.пнг.

# 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)

Резиме

Можете сумирати аргументе за стварање распршене парцеле у табели испод:

објективан

Код

Основна распршена парцела

ggplot(df, aes(x = x1, y = y)) + geom_point()

Распршена парцела са групом боја

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm")

Додајте уклопљене вредности

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1))

Додати наслов

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99"))

Додајте титл

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99"))

Преименуј к

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1")

Преименуј и

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1")

Контролишите скалу

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)

Направите дневнике

ggplot(df, aes(x =log(x1), y = log(y))) + geom_point()

Тема

ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic()

сачувати

ggsave("my_fantastic_plot.png.webp")