首页 > 解决方案 > python seaborn:色调的阿尔法

问题描述

在 seaborn 中,hue 为组设置了不同的颜色。我可以alpha根据中的组进行设置JointGrid吗?甚至在单个数据点上?

sns.set_theme()
jg = sns.JointGrid(data=df_sns, x='x', y='y', hue='hue')
jg.plot_joint(sns.scatterplot)
jg.plot_marginals(sns.histplot, kde=False)

jg.set_axis_labels(xlabel='x', ylabel='y')
jg.fig.tight_layout()

标签: pythonseaborn

解决方案


(更新:to_rgba()按照评论中的建议使用。)

您可以创建一个palette包含带有 alpha 的颜色。创建此类颜色的一种简单方法是使用十六进制格式:'#RRGGBBAA'. 或者,您可以将任何 matplotlib 颜色转换为 rgb 并添加 alpha,如示例代码中所示:

import matplotlib.pyplot as plt
from matplotlib.colors import to_rgba
import seaborn as sns

iris = sns.load_dataset("iris")

g = sns.JointGrid(data=iris, x='sepal_length', y='sepal_width', hue='species')
color_dict = {'setosa': to_rgba('cornflowerblue', 1),
              'versicolor': to_rgba('crimson', 0.7),
              'virginica': to_rgba('turquoise', 0.4)}
g.plot_joint(sns.scatterplot, palette=color_dict)
g.plot_marginals(sns.histplot, kde=False, palette=color_dict, multiple='stack')

plt.tight_layout()
plt.show()

与 alpha 的联合图


推荐阅读