ВВОДНАЯ ЧАСТЬ

big
Исходный размер 3543x1772

Картина Александра Макса Кестера.

СТАТИСТИКА ДАННЫХ

Для данного исследования была взята следующая статистика — Wings of Wisdom: Deep Dive into Waterfowl Species.

Я выбрала данные из открытого набора данных на Kaggle. Внутри есть детальная информация о характеристиках каждой птицы, особенностях размножения, пищевых предпочтениях, динамике популяции и природоохранном статусе.

big
Исходный размер 3543x1772

Картина Александра Макса Кестера.

ЦЕННОСТЬ

Итак, мой проект посвящен анализу данных о гусях и им подобных водоплавающих птицах, потому что гуси и куры для меня крайне важны в этой жизни. Именно по этой причине мне стало очень интересно собрать данные воедино и написать о них.

ВИДЫ ИСПОЛЬЗУЕМЫХ ДИАГРАММ

В своём проекте я буду использовать такие виды диаграмм как: - Линейные диаграммы - Гистограммы - Столбчатые диаграммы - Круговые диаграммы - Тепловые карты - Диаграммы рассеяния

МОИ ЭТАПЫ РАБОТЫ

Исходный размер 3543x1772

Картина Александра Макса Кестера.

ОБРАБОТКА ДАННЫХ

Чтобы получить структурированные данные таблицы и с их помощью создавать диаграммы я использую библиотеку Pandas на языке Python. Скачав и использовав программу Anaconda в среде Spider я вывела данные таблицы и создала несколько диаграмм, которые будут описаны ниже.

import pandas as pd

data = { 'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'name': ['American Black Duck', 'American Coot', 'American Wigeon', 'Barnacle Goose', 'Barrow's Goldeneye', 'Black Scoter', 'Black-bellied Whistling-Duck', 'Blue-winged Teal', 'Brant', 'Bufflehead'], 'type': ['Dabbling Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck', 'Diving Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck'], 'latin_name': ['Anas rubripes', 'Fulica americana', 'Mareca americana', 'Branta leucopsis', 'Bucephala islandica', 'Melanitta americana', 'Dendrocygna autumnalis', 'Spatula discors', 'Branta bernicla', 'Bucephala albeola'], 'm_avg_length_inches': [22, 16.2, 20, 27.0, 19.2, 19.7, 19.4, 16, 25, 15], 'f_avg_length_inches': [21, 16.2, 19, 23.5, 17, 18.5, 19, 14, 23, 13], 'm_avg_weight_lbs': [2.7, 1.5, 1.8, 4.03, 2.13, 2.5, 1.8, 1, 3.4, 1.1], 'f_avg_weight_lbs': [2.4, 1.2, 1.6, 3.57, 1.31, 2.2, 1.85, 0.8, 3.1, 0.7], 'life_span_year': ['10-15', '2-3', '5-10', '10-20', '10-15', '10-15', '10-15', '3-5', '5-10', '3-5'], 'egg_avg': [9, 6, 9, 4, 6, 8, 13, 10, 5, 9] }

df = pd.DataFrame (data)

print (df)

id name type latin_name
0 1 American Black Duck Dabbling Duck Anas rubripes 1 2 American Coot Other Fulica americana 2 3 American Wigeon Dabbling Duck Mareca americana 3 4 Barnacle Goose Goose Branta leucopsis 4 5 Barrow’s Goldeneye Diving Duck Bucephala islandica 5 6 Black Scoter Diving Duck Melanitta americana 6 7 Black-bellied Whistling-Duck Other Dendrocygna autumnalis 7 8 Blue-winged Teal Dabbling Duck Spatula discors 8 9 Brant Goose Branta bernicla 9 10 Bufflehead Diving Duck Bucephala albeola

m_avg_length_inches f_avg_length_inches m_avg_weight_lbs
0 22.0 21.0 2.70 1 16.2 16.2 1.50 2 20.0 19.0 1.80 3 27.0 23.5 4.03 4 19.2 17.0 2.13 5 19.7 18.5 2.50 6 19.4 19.0 1.80 7 16.0 14.0 1.00 8 25.0 23.0 3.40 9 15.0 13.0 1.10

f_avg_weight_lbs life_span_year egg_avg 0 2.40 10-15 9 1 1.20 2-3 6 2 1.60 5-10 9 3 3.57 10-20 4 4 1.31 10-15 6 5 2.20 10-15 8 6 1.85 10-15 13 7 0.80 3-5 10 8 3.10 5-10 5 9 0.70 3-5 9

ОБРАБОТКА ДАННЫХ В ДИАГРАММАХ

Я работал в приложении «Google Colab», так как в среде Spyder у меня не получилось создать диаграмму.

Все итоговые диаграммы прикреплены в самом конце проекта. Написанный код и база данных, ведущая на гугл диск, будут также прикреплены в самом конце проекта.

ДИАГРАММА № 1

С помощью гистограммы я продемонстрирую следующее:

Средний вес и длина птиц: Ось X: Вид птицы. Ось Y: Средний вес (в фунтах) или длина (в дюймах).

Гистограмма покажет распределение среднего веса и длины различных видов водоплавающих птиц.

Продолжительность жизни: Ось X: Вид птицы. Ось Y: Продолжительность жизни (в годах).

Гистограмма покажет распределение продолжительности жизни различных видов водоплавающих птиц.

import matplotlib.pyplot as plt import pandas as pd

data = { 'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'name': ['American Black Duck', 'American Coot', 'American Wigeon', 'Barnacle Goose', 'Barrow's Goldeneye', 'Black Scoter', 'Black-bellied Whistling-Duck', 'Blue-winged Teal', 'Brant', 'Bufflehead'], 'type': ['Dabbling Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck', 'Diving Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck'], 'latin_name': ['Anas rubripes', 'Fulica americana', 'Mareca americana', 'Branta leucopsis', 'Bucephala islandica', 'Melanitta americana', 'Dendrocygna autumnalis', 'Spatula discors', 'Branta bernicla', 'Bucephala albeola'], 'm_avg_length_inches': [22, 16.2, 20, 27.0, 19.2, 19.7, 19.4, 16, 25, 15], 'f_avg_length_inches': [21, 16.2, 19, 23.5, 17, 18.5, 19, 14, 23, 13], 'm_avg_weight_lbs': [2.7, 1.5, 1.8, 4.03, 2.13, 2.5, 1.8, 1, 3.4, 1.1], 'f_avg_weight_lbs': [2.4, 1.2, 1.6, 3.57, 1.31, 2.2, 1.85, 0.8, 3.1, 0.7], 'life_span_year': ['10-15', '2-3', '5-10', '10-20', '10-15', '10-15', '10-15', '3-5', '5-10', '3-5'], 'egg_avg': [9, 6, 9, 4, 6, 8, 13, 10, 5, 9] }

df = pd.DataFrame (data)

plt.figure (figsize=(10, 6)) plt.bar (df['name'], df['m_avg_weight_lbs'], color='skyblue') plt.xlabel ('Вид птицы') plt.ylabel ('Средний вес (фунты)') plt.title ('Средний вес водоплавающих птиц') plt.xticks (rotation=90) plt.tight_layout () plt.show ()

plt.figure (figsize=(10, 6)) plt.bar (df['name'], df['m_avg_length_inches'], color='lightgreen') plt.xlabel ('Вид птицы') plt.ylabel ('Средняя длина (дюймы)') plt.title ('Средняя длина водоплавающих птиц') plt.xticks (rotation=90) plt.tight_layout () plt.show ()

plt.figure (figsize=(10, 6)) plt.bar (df['name'], df['life_span_year'].astype (str).str.split ('-').str[0].astype (int), color='lightcoral') plt.xlabel ('Вид птицы') plt.ylabel ('Продолжительность жизни (годы)') plt.title ('Продолжительность жизни водоплавающих птиц') plt.xticks (rotation=90) plt.tight_layout () plt.show ()

Здесь используется библиотека pandas для работы с таблицами данных.

Далее создается словарь data, который содержит столбцы и их значения.

Позже создаю DataFrame df из словаря data.

И как итог — вывожу таблицу на экран с помощью функции print (df).

ДИАГРАММА № 2

С помощью круговой диаграммы я продемонстрирую следующее

Типы водоплавающих птиц: Секторы: Процентное соотношение различных типов водоплавающих птиц (например, утки, гуси, лебеди).

Круговая диаграмма покажет распределение видов водоплавающих птиц по типам.

Статус охраны: Секторы: Процентное соотношение видов с различными статусами охраны (например, Least Concern, Vulnerable, Endangered).

Круговая диаграмма покажет распределение видов водоплавающих птиц по статусам охраны.

import matplotlib.pyplot as plt import pandas as pd

data = { 'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'name': ['American Black Duck', 'American Coot', 'American Wigeon', 'Barnacle Goose', 'Barrow's Goldeneye', 'Black Scoter', 'Black-bellied Whistling-Duck', 'Blue-winged Teal', 'Brant', 'Bufflehead'], 'type': ['Dabbling Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck', 'Diving Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck'], 'latin_name': ['Anas rubripes', 'Fulica americana', 'Mareca americana', 'Branta leucopsis', 'Bucephala islandica', 'Melanitta americana', 'Dendrocygna autumnalis', 'Spatula discors', 'Branta bernicla', 'Bucephala albeola'], 'm_avg_length_inches': [22, 16.2, 20, 27.0, 19.2, 19.7, 19.4, 16, 25, 15], 'f_avg_length_inches': [21, 16.2, 19, 23.5, 17, 18.5, 19, 14, 23, 13], 'm_avg_weight_lbs': [2.7, 1.5, 1.8, 4.03, 2.13, 2.5, 1.8, 1, 3.4, 1.1], 'f_avg_weight_lbs': [2.4, 1.2, 1.6, 3.57, 1.31, 2.2, 1.85, 0.8, 3.1, 0.7], 'life_span_year': ['10-15', '2-3', '5-10', '10-20', '10-15', '10-15', '10-15', '3-5', '5-10', '3-5'], 'egg_avg': [9, 6, 9, 4, 6, 8, 13, 10, 5, 9] }

df = pd.DataFrame (data)

type_counts = df['type'].value_counts ()

df['conservation_status'] = ['Least Concern', 'Vulnerable', 'Endangered', …]

conservation_status_counts = df['conservation_status'].value_counts ()

conservation_status_counts = pd.Series ({'Least Concern': 5, 'Vulnerable': 3, 'Endangered': 2})

plt.figure (figsize=(8, 8)) plt.pie (type_counts, labels=type_counts.index, autopct='%1.1f%%', startangle=140) plt.title ('Распределение типов водоплавающих птиц') plt.show ()

plt.figure (figsize=(8, 8)) plt.pie (conservation_status_counts, labels=conservation_status_counts.index, autopct='%1.1f%%', startangle=140) plt.title ('Распределение видов водоплавающих птиц по статусам охраны') plt.show ()

Здесь используется matplotlib для создания графиков и pandas для работы с данными.

Создается словарь data, который содержит столбцы и их значения.

Из словаря data создаем DataFrame df.

Используется метод value_counts () для подсчета количества каждого типа водоплавающих птиц.

Я создаю пример данных для статусов охраны (в реальном коде это столбец в DataFrame).

С помощью функции plt.pie () создается круговая диаграмма.

Так же создается вторая круговая диаграмма для статусов охраны.

ДИАГРАММА № 3

С помощью линейной диаграммы я продемонстрирую следующее:

Изменение численности популяции: Ось X: Время (годы). Ось Y: Численность популяции.

Линейная диаграмма покажет динамику изменения численности популяции различных видов водоплавающих птиц.

import matplotlib.pyplot as plt import pandas as pd

data = { 'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'name': ['American Black Duck', 'American Coot', 'American Wigeon', 'Barnacle Goose', 'Barrow's Goldeneye', 'Black Scoter', 'Black-bellied Whistling-Duck', 'Blue-winged Teal', 'Brant', 'Bufflehead'], 'type': ['Dabbling Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck', 'Diving Duck', 'Other', 'Dabbling Duck', 'Goose', 'Diving Duck'], 'latin_name': ['Anas rubripes', 'Fulica americana', 'Mareca americana', 'Branta leucopsis', 'Bucephala islandica', 'Melanitta americana', 'Dendrocygna autumnalis', 'Spatula discors', 'Branta bernicla', 'Bucephala albeola'], 'm_avg_length_inches': [22, 16.2, 20, 27.0, 19.2, 19.7, 19.4, 16, 25, 15], 'f_avg_length_inches': [21, 16.2, 19, 23.5, 17, 18.5, 19, 14, 23, 13], 'm_avg_weight_lbs': [2.7, 1.5, 1.8, 4.03, 2.13, 2.5, 1.8, 1, 3.4, 1.1], 'f_avg_weight_lbs': [2.4, 1.2, 1.6, 3.57, 1.31, 2.2, 1.85, 0.8, 3.1, 0.7], 'life_span_year': ['10-15', '2-3', '5-10', '10-20', '10-15', '10-15', '10-15', '3-5', '5-10', '3-5'], 'egg_avg': [9, 6, 9, 4, 6, 8, 13, 10, 5, 9] }

df = pd.DataFrame (data)

years = [2010, 2015, 2020, 2025] population_data = { 'American Black Duck': [1000, 1200, 1300, 1400], 'American Coot': [800, 900, 1000, 1100], 'American Wigeon': [1500, 1600, 1700, 1800], # Добавьте данные для других видов водоплавающих птиц }

population_df = pd.DataFrame (population_data, index=years)

plt.figure (figsize=(10, 6)) for species in population_df.columns: plt.plot (population_df.index, population_df[species], label=species)

plt.xlabel ('Год') plt.ylabel ('Численность популяции') plt.title ('Динамика изменения численности популяции водоплавающих птиц') plt.legend () plt.grid (True) plt.show ()

Используется matplotlib для создания графиков и pandas для работы с данными.

Создается словарь data, который содержит столбцы и их значения.

Создается DataFrame df из словаря data.

Далее создается пример данных для изменения численности популяции за несколько лет.

Создается DataFrame population_df из данных о численности популяции.

И после я создаю линейную диаграмму с помощью функции plt.plot () для каждого вида водоплавающих птиц.

ДИАГРАММА № 4

Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше