Original size 906x1280

Анализ жуков

The project is taking part in the competition

Жуки

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

Я выбрала эту тему, потому что она сочетает в себе научный интерес и личную увлечённость: Жуки имеют привлекательный и милый вид, а самое главное — играют важную роль в экосистемах и обладают большим разнообразием форм и жизненных циклов.

Цель проекта — рассмотреть имеющиеся данные о жуках и представить их в виде наглядных графиков, чтобы лучше понять основные особенности и закономерности, отражённые в этих данных.

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

Диаграммы, которые присутствуют в данном проекте: 1. Круговая диаграмма 2. Точечная диаграмма 3. Столбчатая диаграмма 4. Линейная диаграмма

big
Original size 1710x642

График 1

Семейств жесткокрылых в мире около 150, а общее число видов превышает 1 миллион.

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

Original size 1547x934

По данному графику можно выяснить, что самые большие семейства жуков в мире — это долгоносики и стафилиниды.

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («ЖУКИЕ-1.csv»)

labels = df[«Семейство»] values = df[«Количество»]

plt.figure (figsize=(10, 10))

plt.pie ( values, labels=labels, startangle=90, labeldistance=1.15, wedgeprops={"edgecolor»: «white"} )

plt.tight_layout () plt.show ()

Графики 2

В столбчатых диаграммах тоже продемонстрированы соотношения численности видов в приведённых семействах жуков, но уже исключительно в России.

0

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («/mnt/data/ЖУКИЕ.csv»)

plt.figure (figsize=(14, 6)) plt.bar (df[«Отряд»], df[«Количество»], width=0.6)

plt.xticks (rotation=45, ha="right») plt.ylabel («Количество») plt.grid (axis="y», alpha=0.4)

plt.tight_layout () plt.show ()

По данному графику можно выяснить, что в России есть далеко не все виды жуков, но численность видов долгоносиков продолжает доминировать над всеми остальными группами, даже теми, кто не был отдельно выбран для анализа и помещён в один столбик.

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («/mnt/data/ЖУКИЕ.csv»)

df_filtered = df[df[«Количество»] > 100]

plt.figure (figsize=(14, 6)) plt.bar (df_filtered[«Отряд»], df_filtered[«Количество»], width=0.6)

plt.xticks (rotation=45, ha="right») plt.ylabel («Количество») plt.grid (axis="y», alpha=0.4)

plt.tight_layout () plt.show ()

Так же я решила сравнить численность видов 15-ти семейств над всеми остальными во всём мире.

Original size 1547x934

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

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («/mnt/data/ЖУКИЕ.csv»)

plt.figure (figsize=(14, 6)) plt.bar (df[«Отряд»], df[«Численность»], width=0.6)

plt.xticks (rotation=45, ha="right») plt.ylabel («Численность, экз.») plt.grid (axis="y», alpha=0.4)

plt.tight_layout () plt.show ()

График 3

В период 1980‑х годов наблюдалось существенное снижение численности популяции майских жуков вследствие применения пестицидов. На линейной диаграмме видно, как менялось число личинок в почве (сколько их приходилось на один квадратный метр) в разных регионах. Данные собраны с интервалом в несколько лет.

Original size 1547x934

После вступления в силу запрета на использование пестицидов, зафиксировано восстановление численности насекомых, что свидетельствует об эффективности принятых регуляторных мер.

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («Популяция-майски_1.csv»)

years = df[«Год»] population = df[«Численность»]

plt.figure (figsize=(12, 6))

plt.plot ( years, population, marker="o», linewidth=2.5 )

plt.ylim (0, 420) plt.yticks ([0, 100, 200, 300, 400])

plt.grid (axis="y», alpha=0.6)

plt.tight_layout () plt.show ()

График 4

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

Original size 1547x934

Синие точки — длинна. Красные точки — масса.

import pandas as pd import matplotlib.pyplot as plt

df = pd.read_csv («/mnt/data/Жук Геркулес.csv»)

x = range (len (df))

plt.figure (figsize=(12, 6))

plt.scatter (x, df[«Длина»], s=80) plt.scatter (x, df[«Масса»], s=80)

plt.xticks (x, df[«Стадия»], rotation=45, ha="right») plt.ylabel («Значение») plt.xlabel («Стадия развития») plt.title («Точечная диаграмма: длина и масса по стадиям развития»)

plt.tight_layout () plt.show ()

Заключение

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

Original size 1710x642

Для генерации кода в этом проекте использовался ChatGPT. Он использовался для оптимизации и исправления ошибок.