Диаграммы рассеяния с цветовым кодированием по значениям столбцов в Python
При визуализации данных назначение цветов различным категориям может повысить ясность и выявить закономерности. Эта функциональность легко доступна в ggplot2 для R, но как мы можем добиться того же в Python, используя pandas и matplotlib?
Обновление: улучшения Seaborn
После исходного ответа Seaborn превратилась в мощную библиотеку для создания информативных и визуально привлекательных сюжетов. Его недавние обновления предлагают удобные функции для раскрашивания диаграмм рассеяния на основе значений столбцов:
Оригинальный подход 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, что делает визуализацию данных более информативной и визуально привлекательной.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3