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.
Data-Science-For-Beginners/translations/bg/3-Data-Visualization/11-visualization-proportions
leestott b83ba9ded4
🌐 Update translations via Co-op Translator
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

Визуализиране на пропорции

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

В този урок ще използвате различен набор от данни, свързан с природата, за да визуализирате пропорции, като например колко различни видове гъби се срещат в даден набор от данни за гъби. Нека разгледаме тези очарователни гъби, използвайки набор от данни, предоставен от Audubon, който съдържа информация за 23 вида гъби с ламели от семействата Agaricus и Lepiota. Ще експериментирате с апетитни визуализации като:

  • Кръгови диаграми 🥧
  • Диаграми тип "поничка" 🍩
  • Диаграми тип "вафла" 🧇

💡 Един много интересен проект, наречен Charticulator от Microsoft Research, предлага безплатен интерфейс за визуализация на данни чрез влачене и пускане. В един от техните уроци те също използват този набор от данни за гъби! Така можете да изследвате данните и да научите библиотеката едновременно: Charticulator tutorial.

Тест преди лекцията

Запознайте се с вашите гъби 🍄

Гъбите са много интересни. Нека импортираме набор от данни, за да ги изучим:

import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()

Таблица се отпечатва с чудесни данни за анализ:

class cap-shape cap-surface cap-color bruises odor gill-attachment gill-spacing gill-size gill-color stalk-shape stalk-root stalk-surface-above-ring stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring veil-type veil-color ring-number ring-type spore-print-color population habitat
Отровна Изпъкнала Гладка Кафява Синини Остра Свободна Плътна Тясна Черна Разширяваща Равна Гладка Гладка Бяла Бяла Частична Бяла Една Висяща Черна Разпръсната Градска
Ядлива Изпъкнала Гладка Жълта Синини Бадем Свободна Плътна Широка Черна Разширяваща Клуб Гладка Гладка Бяла Бяла Частична Бяла Една Висяща Кафява Многобройна Треви
Ядлива Камбанка Гладка Бяла Синини Анасон Свободна Плътна Широка Кафява Разширяваща Клуб Гладка Гладка Бяла Бяла Частична Бяла Една Висяща Кафява Многобройна Ливади
Отровна Изпъкнала Люспеста Бяла Синини Остра Свободна Плътна Тясна Кафява Разширяваща Равна Гладка Гладка Бяла Бяла Частична Бяла Една Висяща Черна Разпръсната Градска

Веднага забелязвате, че всички данни са текстови. Ще трябва да конвертирате тези данни, за да можете да ги използвате в диаграма. Всъщност повечето данни са представени като обект:

print(mushrooms.select_dtypes(["object"]).columns)

Резултатът е:

Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor',
       'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',
       'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',
       'stalk-surface-below-ring', 'stalk-color-above-ring',
       'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number',
       'ring-type', 'spore-print-color', 'population', 'habitat'],
      dtype='object')

Вземете тези данни и конвертирайте колоната 'class' в категория:

cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass

Сега, ако отпечатате данните за гъбите, можете да видите, че те са групирани в категории според класа ядливи/отровни:

cap-shape cap-surface cap-color bruises odor gill-attachment gill-spacing gill-size gill-color stalk-shape ... stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring veil-type veil-color ring-number ring-type spore-print-color population habitat
class
Ядлива 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
Отровна 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

Ако следвате реда, представен в тази таблица, за да създадете етикетите за категорията 'class', можете да създадете кръгова диаграма:

Кръг!

labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()

Ето я, кръгова диаграма, показваща пропорциите на тези данни според двата класа гъби. Много е важно да получите реда на етикетите правилно, особено тук, затова се уверете, че сте проверили реда, с който е създаден масивът от етикети!

кръгова диаграма

Понички!

Малко по-визуално интересна кръгова диаграма е диаграмата тип "поничка", която е кръгова диаграма с дупка в средата. Нека разгледаме нашите данни, използвайки този метод.

Разгледайте различните местообитания, където растат гъбите:

habitat=mushrooms.groupby(['habitat']).count()
habitat

Тук групирате данните си по местообитание. Има 7 изброени, така че използвайте тези като етикети за вашата диаграма тип "поничка":

labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']

plt.pie(habitat['class'], labels=labels,
        autopct='%1.1f%%', pctdistance=0.85)
  
center_circle = plt.Circle((0, 0), 0.40, fc='white')
fig = plt.gcf()

fig.gca().add_artist(center_circle)
  
plt.title('Mushroom Habitats')
  
plt.show()

диаграма тип "поничка"

Този код рисува диаграма и централен кръг, след което добавя този централен кръг в диаграмата. Редактирайте ширината на централния кръг, като промените 0.40 на друга стойност.

Диаграмите тип "поничка" могат да бъдат променяни по различни начини, за да се променят етикетите. Етикетите, по-специално, могат да бъдат подчертани за по-добра четимост. Научете повече в документацията.

Сега, когато знаете как да групирате данните си и след това да ги показвате като кръг или поничка, можете да изследвате други видове диаграми. Опитайте диаграма тип "вафла", която е просто различен начин за изследване на количествата.

Вафли!

Диаграмата тип "вафла" е различен начин за визуализиране на количества като двумерна решетка от квадрати. Опитайте да визуализирате различните количества цветове на шапките на гъбите в този набор от данни. За да направите това, трябва да инсталирате помощна библиотека, наречена PyWaffle и да използвате Matplotlib:

pip install pywaffle

Изберете сегмент от вашите данни за групиране:

capcolor=mushrooms.groupby(['cap-color']).count()
capcolor

Създайте диаграма тип "вафла", като създадете етикети и след това групирате данните си:

import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
  
data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
    'amount': capcolor['class']
     }
  
df = pd.DataFrame(data)
  
fig = plt.figure(
    FigureClass = Waffle,
    rows = 100,
    values = df.amount,
    labels = list(df.color),
    figsize = (30,30),
    colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)

Използвайки диаграма тип "вафла", можете ясно да видите пропорциите на цветовете на шапките в този набор от данни за гъби. Интересно е, че има много гъби със зелени шапки!

диаграма тип "вафла"

Pywaffle поддържа икони в диаграмите, които използват всяка икона, налична в Font Awesome. Направете някои експерименти, за да създадете още по-интересна диаграма тип "вафла", използвайки икони вместо квадрати.

В този урок научихте три начина за визуализиране на пропорции. Първо, трябва да групирате данните си в категории и след това да решите кой е най-добрият начин за показване на данните - кръг, поничка или вафла. Всички са вкусни и предоставят на потребителя моментална снимка на набора от данни.

🚀 Предизвикателство

Опитайте да пресъздадете тези апетитни диаграми в Charticulator.

Тест след лекцията

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

Понякога не е очевидно кога да използвате кръгова, диаграма тип "поничка" или диаграма тип "вафла". Ето някои статии за четене по тази тема:

https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart

https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce

https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm

https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402

Направете проучване, за да намерите повече информация относно това трудно решение.

Задача

Опитайте го в Excel


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.