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.

14 KiB

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

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

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

  • Кръгови диаграми 🥧
  • Пръстеновидни диаграми 🍩
  • Вафлени диаграми 🧇

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

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

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

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

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

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

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
Poisonous Convex Smooth Brown Bruises Pungent Free Close Narrow Black Enlarging Equal Smooth Smooth White White Partial White One Pendant Black Scattered Urban
Edible Convex Smooth Yellow Bruises Almond Free Close Broad Black Enlarging Club Smooth Smooth White White Partial White One Pendant Brown Numerous Grasses
Edible Bell Smooth White Bruises Anise Free Close Broad Brown Enlarging Club Smooth Smooth White White Partial White One Pendant Brown Numerous Meadows
Poisonous Convex Scaly White Bruises Pungent Free Close Narrow Brown Enlarging Equal Smooth Smooth White White Partial White One Pendant Black Scattered Urban
Edible Convex Smooth Green No Bruises None Free Crowded Broad Black Tapering Equal Smooth Smooth White White Partial White One Evanescent Brown Abundant Grasses
Edible Convex Scaly Yellow Bruises Almond Free Close Broad Brown Enlarging Club Smooth Smooth White White Partial White One Pendant Black Numerous Grasses

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

names(mushrooms)

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

[1] "class"                    "cap.shape"               
 [3] "cap.surface"              "cap.color"               
 [5] "bruises"                  "odor"                    
 [7] "gill.attachment"          "gill.spacing"            
 [9] "gill.size"                "gill.color"              
[11] "stalk.shape"              "stalk.root"              
[13] "stalk.surface.above.ring" "stalk.surface.below.ring"
[15] "stalk.color.above.ring"   "stalk.color.below.ring"  
[17] "veil.type"                "veil.color"              
[19] "ring.number"              "ring.type"               
[21] "spore.print.color"        "population"              
[23] "habitat"            

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

library(dplyr)
grouped=mushrooms %>%
  group_by(class) %>%
  summarise(count=n())

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

View(grouped)
class count
Edible 4208
Poisonous 3916

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

Кръг!

pie(grouped$count,grouped$class, main="Edible?")

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

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

Пръстени!

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

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

library(dplyr)
habitat=mushrooms %>%
  group_by(habitat) %>%
  summarise(count=n())
View(habitat)

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

habitat count
Grasses 2148
Leaves 832
Meadows 292
Paths 1144
Urban 368
Waste 192
Wood 3148

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

library(ggplot2)
library(webr)
PieDonut(habitat, aes(habitat, count=count))

пръстеновидна диаграма

Този код използва две библиотеки - ggplot2 и webr. Използвайки функцията PieDonut от библиотеката webr, можем лесно да създадем пръстеновидна диаграма!

Пръстеновидни диаграми в R могат да се създават и само с библиотеката ggplot2. Можете да научите повече за това тук и да го изпробвате сами.

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

Вафли!

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

install.packages("waffle", repos = "https://cinc.rud.is")

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

library(dplyr)
cap_color=mushrooms %>%
  group_by(cap.color) %>%
  summarise(count=n())
View(cap_color)

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

library(waffle)
names(cap_color$count) = paste0(cap_color$cap.color)
waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", 
                                                                                     "pink", "purple", "red", "grey", 
                                                                                     "yellow","white"))

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

вафлена диаграма

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

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

Опитайте да пресъздадете тези вкусни диаграми в 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. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.