Original size 597x995

Морфологические особенности цветковых растений

PROTECT STATUS: not protected
The project is taking part in the competition
big
Original size 1344x768

Введение

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

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

Источник данных

В качестве источника данных был использован CSV-датасет flowers.csv, содержащий информацию о 72 видах цветов. Датасет включает как категориальные признаки (название, климат, цвет, регион происхождения), так и числовые характеристики, представленные в виде диапазонов значений.

Подготовка и обработка данных

На этапе подготовки данных была проведена предварительная проверка структуры таблицы и типов данных. Числовые характеристики, представленные в виде диапазонов (например, высота растения или количество лепестков), были преобразованы в усреднённые значения. Это позволило сохранить интерпретационную точность и использовать данные для визуального анализа.

Значения, не поддающиеся количественной интерпретации (например, обозначенные как Variable), были обработаны как пропущенные данные и исключены из соответствующих визуализаций.

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

Original size 1344x768

Визуальный стиль

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

Анализ и визуализация данных

1. Средняя высота цветов по климату

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

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

2. Связь между высотой и продолжительностью жизни

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

3. Распределение количества лепестков по видам

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

4. Использование цветов в различных сферах

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

5. Распределение количества лепестков

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

Original size 1344x768

Итоговые графики

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np

Общие настройки визуального стиля

plt.rcParams.update ({ figure.figsize (10, 6), figure.facecolor #F1F6F1, axes.facecolor #F1F6F1, axes.titlesize 20, axes.labelsize 13, xtick.labelsize 11, ytick.labelsize 11, axes.grid True, grid.alpha 0.2, font.family Playfair Display, axes.edgecolor #4F6F52, axes.linewidth 1.2 })

sns.set_style (whitegrid)

Основная цветовая палитра проекта

BOTANICAL_PALETTE = [

4F6F52,

зелёный

C75B7A,

приглушённый розовый

E9C46A,

тёплый жёлтый

8FAE8E

оливковый ]

sns.set_palette (BOTANICAL_PALETTE)

Загрузка данных

df = pd.read_csv (flowers.csv)

Фолбэк-шрифт на случай, если Playfair не установлен

plt.rcParams[font.family] = [DejaVu Serif]

Преобразование диапазонов в числовые значения

def range_to_mean (value) if isinstance (value, str) value = value.strip ()

    # Нечисловые значения считаем пропущенными
    if value.lower () == variable
        return np.nan

    # Диапазон вида 20-50
    if — in value
        a, b = value.split (-)
        return (float (a) \+ float (b)) 2

    # Одиночное число
    try
        return float (value)
    except
        return np.nan

return np.nan

Приводим основные характеристики к числовому виду

df[height_mean] = df[height (cm)].apply (range_to_mean) df[longevity_mean] = df[longevity (years)].apply (range_to_mean) df[petals_mean] = df[average number of petals].apply (range_to_mean)

Приведение климатических категорий к единому виду

df[climate_clean] = ( df[climate] .str.lower () .str.strip () .str.replace (,) )

df[climate_clean] = df[climate_clean].replace ({ cold, temperate cold, temperatetotropical temperate to tropical, tropicaltotemperate tropical to temperate })

Original size 1280x555

Средняя высота цветов по климату

avg_height_by_climate = df.groupby (climate_clean)[height_mean].mean ()

plt.figure () avg_height_by_climate.plot ( kind=bar, color=BOTANICAL_PALETTE[0] ) plt.xlabel (Climate) plt.ylabel (Average Height (cm)) plt.title (Average Flower Height by Climate) plt.tight_layout () plt.show ()

Original size 990x592

Связь высоты и продолжительности жизни

plt.figure () plt.scatter ( df[height_mean], df[longevity_mean], color=BOTANICAL_PALETTE[1], alpha=0.7, edgecolors=white, linewidths=0.5 ) plt.xlabel (Average Height (cm)) plt.ylabel (Longevity (years)) plt.title (Relationship Between Flower Height and Longevity) plt.tight_layout () plt.show ()

Original size 1280x582

Количество лепестков у разных видов

plt.figure (figsize=(12, 6)) sns.boxplot ( x=name, y=petals_mean, data=df, linewidth=1, fliersize=3 ) plt.xticks (rotation=45, ha=right) plt.xlabel (Flower Type) plt.ylabel (Average Number of Petals) plt.title (Distribution of Petal Count by Flower Type) plt.tight_layout () plt.show ()

Original size 1280x584

Использование цветов в разных сферах

usage = df[[cut flowers, perfumes, medicine]].sum ()

plt.figure () usage.plot ( kind=bar, color=BOTANICAL_PALETTE[3] ) plt.xlabel (Usage Type) plt.ylabel (Number of Flower Species) plt.title (Flower Usage in Different Industries) plt.tight_layout () plt.show ()

Original size 1280x620

Распределение количества лепестков

plt.figure () plt.hist ( df[petals_mean].dropna (), bins=20, color=BOTANICAL_PALETTE[2], edgecolor=white ) plt.xlabel (Average Number of Petals) plt.ylabel (Number of Flower Species) plt.title (Distribution of Average Petal Count) plt.tight_layout () plt.show ()

Используемые методы

В ходе проекта были применены следующие методы анализа данных:

описательная статистика

группировка данных (groupby)

визуальное сравнение распределений

scatter-анализ

обработка пропущенных и интервальных значений

Для анализа и визуализации использовались библиотеки Pandas, Matplotlib и Seaborn.

Original size 1344x768

Заключение

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

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

Использование ИИ

В рамках проекта применялась генеративная модель ChatGPT (OpenAI) для помощи в структурировании проекта, формулировке аналитических выводов и оптимизации визуального оформления графиков. ИИ использовался как вспомогательный инструмент и не заменял самостоятельный анализ данных.

Original size 1344x616
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more