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.

188 lines
17 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "0764fd4077f3f04a1d968ec371227744",
"translation_date": "2025-09-06T11:47:58+00:00",
"source_file": "3-Data-Visualization/12-visualization-relationships/README.md",
"language_code": "sr"
}
-->
# Визуелизација односа: Све о меду 🍯
|![ Скетч од [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)|
|:---:|
|Визуелизација односа - _Скетч од [@nitya](https://twitter.com/nitya)_ |
Настављајући са природним фокусом нашег истраживања, хајде да откријемо занимљиве визуелизације које приказују односе између различитих врста меда, према скупу података добијеном од [Министарства пољопривреде Сједињених Држава](https://www.nass.usda.gov/About_NASS/index.php).
Овај скуп података, који садржи око 600 ставки, приказује производњу меда у многим америчким државама. На пример, можете погледати број кошница, принос по кошници, укупну производњу, залихе, цену по фунти и вредност произведеног меда у датој држави од 1998. до 2012. године, са једним редом по години за сваку државу.
Биће занимљиво визуелизовати однос између производње у одређеној држави по годинама и, на пример, цене меда у тој држави. Алтернативно, могли бисте визуелизовати однос између приноса меда по кошници у различитим државама. Овај временски период обухвата разорни феномен 'CCD' или 'Синдром колапса кошница', који је први пут примећен 2006. године (http://npic.orst.edu/envir/ccd.html), што чини овај скуп података посебно значајним за проучавање. 🐝
## [Квиз пре предавања](https://ff-quizzes.netlify.app/en/ds/quiz/22)
У овој лекцији можете користити Seaborn, библиотеку коју сте већ користили, као одличан алат за визуелизацију односа између променљивих. Посебно је занимљива функција `relplot` у Seaborn-у, која омогућава креирање расејаних и линијских графикона за брзу визуелизацију '[статистичких односа](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)', што омогућава научницима података боље разумевање како су променљиве међусобно повезане.
## Расејани графикони
Користите расејани графикон да прикажете како се цена меда развијала из године у годину, по државама. Seaborn, користећи `relplot`, згодно групише податке по државама и приказује тачке за категоријске и нумеричке податке.
Хајде да почнемо са увозом података и библиотеке Seaborn:
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
honey = pd.read_csv('../../data/honey.csv')
honey.head()
```
Приметићете да подаци о меду садрже неколико занимљивих колона, укључујући годину и цену по фунти. Истражимо ове податке, груписане по америчким државама:
| држава | бројкош | приноскош | укупнопрод | залихе | ценапофунти | вредностпрод | година |
| ------ | ------- | --------- | ---------- | -------- | ----------- | ------------ | ------ |
| 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 |
Креирајте основни расејани графикон да прикажете однос између цене по фунти меда и државе порекла. Учинимо `y` осу довољно високом да прикаже све државе:
```python
sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5);
```
![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.sr.png)
Сада прикажите исте податке са шемом боја меда како бисте приказали како се цена мењала током година. Ово можете урадити додавањем параметра 'hue' да прикажете промену из године у годину:
> ✅ Сазнајте више о [палетама боја које можете користити у Seaborn-у](https://seaborn.pydata.org/tutorial/color_palettes.html) - испробајте прелепу шему боја дуге!
```python
sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5);
```
![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.sr.png)
Са овом променом шеме боја, можете видети да постоји очигледан снажан напредак током година у погледу цене меда по фунти. Заиста, ако погледате узорак података (на пример, државу Аризону), можете уочити образац повећања цена из године у годину, са неколико изузетака:
| држава | бројкош | приноскош | укупнопрод | залихе | ценапофунти | вредностпрод | година |
| ------ | ------- | --------- | ---------- | ------- | ----------- | ------------ | ------ |
| 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 |
Други начин да визуелизујете овај напредак је коришћење величине уместо боје. За кориснике који су далтонисти, ово би могла бити боља опција. Измените своју визуелизацију тако да повећање цене буде приказано повећањем обима тачке:
```python
sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5);
```
Можете видети како се величина тачака постепено повећава.
![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.sr.png)
Да ли је ово једноставан случај понуде и потражње? Због фактора као што су климатске промене и колапс кошница, да ли је мање меда доступно за куповину из године у годину, па самим тим цена расте?
Да бисмо открили корелацију између неких променљивих у овом скупу података, истражимо неке линијске графиконе.
## Линијски графикони
Питање: Да ли постоји јасан раст цене меда по фунти из године у годину? Најлакше ћете то открити креирањем једноставног линијског графикона:
```python
sns.relplot(x="year", y="priceperlb", kind="line", data=honey);
```
Одговор: Да, са неким изузецима око 2003. године:
![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.sr.png)
✅ Пошто Seaborn агрегира податке око једне линије, приказује "више мерења за сваку x вредност тако што приказује просек и 95% интервал поверења око просека". [Извор](https://seaborn.pydata.org/tutorial/relational.html). Ово временски захтевно понашање може се онемогућити додавањем `ci=None`.
Питање: Па, да ли можемо видети и пораст у залихама меда око 2003. године? Шта ако погледате укупну производњу из године у годину?
```python
sns.relplot(x="year", y="totalprod", kind="line", data=honey);
```
![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.sr.png)
Одговор: Не баш. Ако погледате укупну производњу, чини се да је она заправо порасла те године, иако генерално количина произведеног меда опада током ових година.
Питање: У том случају, шта је могло изазвати тај скок у цени меда око 2003. године?
Да бисмо то открили, можемо истражити facet grid.
## Facet grids
Facet grids узимају један аспект вашег скупа података (у нашем случају, можете изабрати 'годину' како бисте избегли превише аспеката). Seaborn затим може направити графикон за сваки од тих аспеката ваших изабраних x и y координата ради лакшег визуелног поређења. Да ли се 2003. година издваја у оваквом поређењу?
Креирајте facet grid настављајући да користите `relplot`, како препоручује [документација за Seaborn](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid).
```python
sns.relplot(
data=honey,
x="yieldpercol", y="numcol",
col="year",
col_wrap=3,
kind="line"
)
```
У овој визуелизацији можете упоредити принос по кошници и број кошница из године у годину, један поред другог, са wrap подешеним на 3 за колоне:
![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.sr.png)
За овај скуп података, ништа посебно се не издваја у погледу броја кошница и њиховог приноса, из године у годину и из државе у државу. Постоји ли другачији начин да се пронађе корелација између ове две променљиве?
## Двоструки линијски графикони
Пробајте вишелинијски графикон тако што ћете преклопити два линијска графикона један преко другог, користећи Seaborn-ов 'despine' да уклоните горње и десне ивице, и користећи `ax.twinx` [изведено из Matplotlib-а](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx омогућава графикону да дели x осу и приказује две y осе. Дакле, прикажите принос по кошници и број кошница, преклопљено:
```python
fig, ax = plt.subplots(figsize=(12,6))
lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey,
label = 'Number of bee colonies', legend=False)
sns.despine()
plt.ylabel('# colonies')
plt.title('Honey Production Year over Year');
ax2 = ax.twinx()
lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r",
label ='Yield per colony', legend=False)
sns.despine(right=False)
plt.ylabel('colony yield')
ax.figure.legend();
```
![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.sr.png)
Иако ништа не упада у очи око 2003. године, ово нам омогућава да завршимо лекцију на мало срећнијој ноти: иако укупан број кошница опада, број кошница се стабилизује, чак и ако њихов принос по кошници опада.
Напред, пчеле, напред!
🐝❤️
## 🚀 Изазов
У овој лекцији сте научили нешто више о другим употребама расејаних графикона и линијских мрежа, укључујући facet grids. Изазовите себе да креирате facet grid користећи други скуп података, можда онај који сте користили пре ових лекција. Обратите пажњу на то колико времена је потребно за њихово креирање и како морате бити пажљиви у вези са бројем мрежа које треба нацртати користећи ове технике.
## [Квиз након предавања](https://ff-quizzes.netlify.app/en/ds/quiz/23)
## Преглед и самостално учење
Линијски графикони могу бити једноставни или прилично сложени. Прочитајте мало више у [документацији за Seaborn](https://seaborn.pydata.org/generated/seaborn.lineplot.html) о различитим начинима на које их можете изградити. Покушајте да побољшате линијске графиконе које сте направили у овој лекцији другим методама наведеним у документацији.
## Задатак
[Зароните у кошницу](assignment.md)
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.