Раскраска точечных диаграмм по значениям столбцов
В 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)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3