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

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

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

How to Color Scatter Plots by Column Values in Python?

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

В Python библиотека Matplotlib предоставляет несколько средств настройки эстетики точечных диаграмм. Одной из распространенных задач является назначение цветов на основе значений в определенном столбце.

Интеграция Seaborn

Одним из решений является использование библиотеки Seaborn, основанной на Matplotlib. Seaborn предлагает функции высокого уровня, такие как sns.relplot и sns.FacetGrid, которые позволяют легко сопоставлять диаграммы рассеяния с определенными столбцами. Указав параметр оттенка, вы можете раскрасить точки в соответствии с третьим столбцом, содержащим метки категорий.

import seaborn as sns

sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')

Непосредственное использование Matplotlib

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

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.random.normal(size=10),
                   'Weight': np.random.normal(size=10),
                   'Gender': ["Male", "Male", "Unknown", "Male", "Male",
                              "Female", "Did not respond", "Unknown", "Female", "Female"]})
fig = dfScatter(df)
Заявление о выпуске Эта статья перепечатана по адресу: 1729320496. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3