«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как использовать цветовую кодировку диаграмм рассеяния по значениям столбцов в Python?

Как использовать цветовую кодировку диаграмм рассеяния по значениям столбцов в Python?

Опубликовано 9 ноября 2024 г.
Просматривать:611

How to Color-Code Scatter Plots by Column Values in Python?

Диаграммы рассеяния с цветовым кодированием по значениям столбцов в Python

При визуализации данных назначение цветов различным категориям может повысить ясность и выявить закономерности. Эта функциональность легко доступна в ggplot2 для R, но как мы можем добиться того же в Python, используя pandas и matplotlib?

Обновление: улучшения Seaborn

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

  • Использование seaborn.relplot: эта высокоуровневая функция сочетает в себе аспекты matplotlib.pyplot.scatter и ФасетГрид. Он автоматически обрабатывает цветовое кодирование на основе заданных параметров оттенка и порядка.
  • Сопоставление matplotlib.pyplot.scatter с seaborn.FacetGrid: аналогично исходному подходу, вы можете сопоставить функцию рассеяния с FacetGrid и настройка цветов на основе оттенка.

Оригинальный подход Pandas и Matplotlib

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

import matplotlib.pyplot as plt
import pandas as pd

def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()
    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))

    df["Color"] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df["Color"])
    return fig

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

Пример

Использование предоставленного образца кадра данных:

df = pd.DataFrame({'Height': np.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
                   'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
                   'Gender': ["Male", "Male", "Male", "Male", "Male",
                              "Female", "Female", "Female", "Female", "Female"]})

Вызов функции dfScatter с кадром данных:

fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')

Создает точечную диаграмму, на которой точки окрашены в зависимости от пола:

[Изображение точечной диаграммы, окрашенное в зависимости от пола]

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

Заявление о выпуске Эта статья перепечатана по адресу: 1729320380. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3