使用seaborn/matplotlib在for循环中绘图时修复颜色编码

问题描述 投票:0回答:1

我正在 for 循环中绘制多个散点图,并且“色调”是根据特定维度设置的。该维度可以采用值 1 或 0。因此,我将调色板定义为仅具有 2 种颜色:

colors = ["#6e0303", "#2d659c"]
sns.set_palette(sns.color_palette(colors))

当我在 for 循环中绘制散点图时,1 的色调对于某些图采用一种颜色,而对于其余图采用另一种颜色。 但是,我希望颜色始终是固定的_ 1 -> “#6e0303” 0 -> “#2d659c”

我在 foo 循环中调用以下代码:

plt.figure()
sns.scatterplot(data=df, x="x_col", y="y_col", hue="my_dimension")

有没有办法实现这个目标?

python matplotlib seaborn color-palette
1个回答
0
投票

为此,您只需要稍微调整现有的逻辑即可。首先,您需要将

colors
变量从数组更改为字典:

colors = {0: "#2d659c", 1: "#6e0303"}

然后,您需要将 Seaborn 的

palette
参数与字典一起使用:

sns.scatterplot(data=df, x="x_col", y="y_col", hue="my_dimension", palette=colors)
© www.soinside.com 2019 - 2024. All rights reserved.