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

Можете ли вы раскрасить диаграммы рассеяния на основе определенных значений столбцов в Pandas с помощью Matplotlib?

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

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Раскрашивание диаграмм рассеяния по значениям столбцов с использованием Pandas и Matplotlib

Matplotlib — популярная библиотека Python для создания статических, анимированных и интерактивных визуализаций в Питон. В этой статье рассматривается использование Matplotlib для раскрашивания диаграмм рассеяния на основе значений в определенном столбце DataFrame Pandas.

Импорт и данные

Для начала мы импортируем необходимые библиотеки , включая Matplotlib (как plt) и Pandas (как pd). Мы также создаем образец DataFrame («df») с тремя столбцами: «Рост», «Вес» и «Пол».

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

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})

Обновление в августе 2021 г.

Seaborn представила новые функции уровня фигур, такие как seaborn.relplot в версии 0.11.0. Эти функции рекомендуется использовать вместо прямого использования FacetGrid.

sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()

Старый ответ (2015)

Если вы хотите использовать Matplotlib напрямую, вам необходимо сопоставить функцию разброса matplotlib с категориями Pandas DataFrame . Для этого:

  • Создайте словарь с уникальными категориями на основе столбца и цветов.
  • Добавьте новый столбец «Цвет» в DataFrame, назначив каждой категории соответствующий цвет.
  • Используйте функцию scatter для построения графика данных, указав столбец цвета в качестве аргумента "c".
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

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

Следуя этим шагам, вы можете легко раскрасить диаграммы рассеяния на основе значений столбцов, используя Pandas и Matplotlib.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3