You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 KiB

Визуализација односа: Све о меду 🍯

 Скетч од (@sketchthedocs)
Визуализација односа - Скетч од @nitya

Настављајући са природним фокусом нашег истраживања, хајде да откријемо занимљиве визуализације које приказују односе између различитих врста меда, према подацима добијеним од Министарства пољопривреде Сједињених Америчких Држава.

Овај скуп података, који садржи око 600 ставки, приказује производњу меда у многим америчким државама. На пример, можете погледати број колонија, принос по колонији, укупну производњу, залихе, цену по фунти и вредност произведеног меда у одређеној држави од 1998-2012, са једним редом по години за сваку државу.

Биће занимљиво визуализовати однос између производње меда у одређеној држави по години и, на пример, цене меда у тој држави. Алтернативно, можете визуализовати однос између приноса меда по колонији у различитим државама. Овај временски период обухвата разарајући 'CCD' или 'Поремећај колапса колонија', који је први пут примећен 2006. године (http://npic.orst.edu/envir/ccd.html), па је то значајан скуп података за проучавање. 🐝

Квиз пре предавања

У овом предавању можете користити ggplot2, који сте већ користили, као добру библиотеку за визуализацију односа између променљивих. Посебно је занимљива употреба ggplot2 функција geom_point и qplot, које омогућавају брзо креирање расејаних графикона и линијских графикона за визуализацију 'статистичких односа', што омогућава научнику података да боље разуме како се променљиве међусобно односе.

Расејани графикони

Користите расејани графикон да покажете како се цена меда развијала из године у годину, по државама. ggplot2, користећи ggplot и geom_point, практично групише податке по државама и приказује тачке за категоријске и нумеричке податке.

Хајде да почнемо са увозом података и библиотеке Seaborn:

honey=read.csv('../../data/honey.csv')
head(honey)

Приметићете да подаци о меду имају неколико занимљивих колона, укључујући годину и цену по фунти. Хајде да истражимо ове податке, груписане по америчким државама:

држава бројкол приноспокол укупнапроизв залихе ценапофунти вредностпр година
AL 16000 71 1136000 159000 0.72 818000 1998
AZ 55000 60 3300000 1485000 0.64 2112000 1998
AR 53000 65 3445000 1688000 0.59 2033000 1998
CA 450000 83 37350000 12326000 0.62 23157000 1998
CO 27000 72 1944000 1594000 0.7 1361000 1998
FL 230000 98 22540000 4508000 0.64 14426000 1998

Креирајте основни расејани графикон да покажете однос између цене по фунти меда и државе порекла. Направите y осу довољно високом да прикаже све државе:

library(ggplot2)
ggplot(honey, aes(x = priceperlb, y = state)) +
  geom_point(colour = "blue")

scatterplot 1

Сада, прикажите исте податке са шемом боја меда да покажете како се цена развија током година. То можете урадити додавањем параметра 'scale_color_gradientn' да прикажете промену из године у годину:

Сазнајте више о scale_color_gradientn - испробајте прелепу шему боја дуге!

ggplot(honey, aes(x = priceperlb, y = state, color=year)) +
  geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7))

scatterplot 2

Са овом променом шеме боја, можете видети да постоји очигледан напредак током година у погледу цене меда по фунти. У ствари, ако погледате узорак података да бисте проверили (на пример, изаберите државу Аризону), можете видети образац повећања цена из године у годину, са неколико изузетака:

држава бројкол приноспокол укупнапроизв залихе ценапофунти вредностпр година
AZ 55000 60 3300000 1485000 0.64 2112000 1998
AZ 52000 62 3224000 1548000 0.62 1999000 1999
AZ 40000 59 2360000 1322000 0.73 1723000 2000
AZ 43000 59 2537000 1142000 0.72 1827000 2001
AZ 38000 63 2394000 1197000 1.08 2586000 2002
AZ 35000 72 2520000 983000 1.34 3377000 2003
AZ 32000 55 1760000 774000 1.11 1954000 2004
AZ 36000 50 1800000 720000 1.04 1872000 2005
AZ 30000 65 1950000 839000 0.91 1775000 2006
AZ 30000 64 1920000 902000 1.26 2419000 2007
AZ 25000 64 1600000 336000 1.26 2016000 2008
AZ 20000 52 1040000 562000 1.45 1508000 2009
AZ 24000 77 1848000 665000 1.52 2809000 2010
AZ 23000 53 1219000 427000 1.55 1889000 2011
AZ 22000 46 1012000 253000 1.79 1811000 2012

Други начин да визуализујете овај напредак је да користите величину, уместо боје. За кориснике који имају потешкоће са бојама, ово може бити боља опција. Уредите своју визуализацију да покажете повећање цене кроз повећање обима тачке:

ggplot(honey, aes(x = priceperlb, y = state)) +
  geom_point(aes(size = year),colour = "blue") +
  scale_size_continuous(range = c(0.25, 3))

Можете видети да се величина тачака постепено повећава.

scatterplot 3

Да ли је ово једноставан случај понуде и потражње? Због фактора као што су климатске промене и колапс колонија, да ли је мање меда доступно за куповину из године у годину, па самим тим цена расте?

Да бисмо открили корелацију између неких променљивих у овом скупу података, хајде да истражимо неке линијске графиконе.

Линијски графикони

Питање: Да ли постоји јасан раст цене меда по фунти из године у годину? Најлакше можете то открити креирањем једног линијског графикона:

qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb")

Одговор: Да, са неким изузецима око 2003. године:

line chart 1

Питање: Па, да ли можемо видети скок у залихама меда 2003. године? Шта ако погледате укупну производњу из године у годину?

qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod")

line chart 2

Одговор: Не баш. Ако погледате укупну производњу, чини се да је она заправо повећана те године, иако генерално количина произведеног меда опада током ових година.

Питање: У том случају, шта је могло изазвати скок цене меда око 2003. године?

Да бисмо то открили, можемо истражити мрежу фасета.

Мреже фасета

Мреже фасета узимају један аспект вашег скупа података (у нашем случају, можете изабрати 'годину' да избегнете превише фасета). Seaborn затим може направити графикон за сваку од тих фасета ваших изабраних x и y координата ради лакшег визуелног поређења. Да ли се 2003. година издваја у оваквом поређењу?

Креирајте мрежу фасета користећи facet_wrap као што је препоручено у документацији ggplot2.

ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + 
  geom_line() + facet_wrap(vars(year))

У овој визуализацији можете упоредити принос по колонији и број колонија из године у годину, један поред другог, са подешавањем wrap на 3 за колоне:

facet grid

За овај скуп података, ништа посебно не одскаче у погледу броја колонија и њиховог приноса, из године у годину и из државе у државу. Да ли постоји другачији начин да се пронађе корелација између ове две променљиве?

Двоструки линијски графикони

Покушајте са графиконом са више линија тако што ћете преклопити два линијска графикона један преко другог, користећи R функције par и plot. Планирамо да прикажемо годину на x оси и две y осе. Дакле, приказујемо принос по колонији и број колонија, преклопљено:

par(mar = c(5, 4, 4, 4) + 0.3)              
plot(honey$year, honey$numcol, pch = 16, col = 2,type="l")              
par(new = TRUE)                             
plot(honey$year, honey$yieldpercol, pch = 17, col = 3,              
     axes = FALSE, xlab = "", ylab = "",type="l")
axis(side = 4, at = pretty(range(y2)))      
mtext("colony yield", side = 4, line = 3)   

superimposed plots

Иако ништа не упада у очи око 2003. године, ово нам омогућава да завршимо лекцију на мало срећнијој ноти: иако је укупан број колонија у опадању, број колонија се стабилизује, чак и ако њихов принос по колонији опада.

Напред, пчеле, напред!

🐝❤️

🚀 Изазов

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

Квиз после предавања

Преглед и самостално учење

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

Задатак

Зароните у кошницу


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.