如何在 python Seaborn 中更改调色板中标签的颜色分配?
how to change assignment of colors to labels from palette in python Seaborn?
如何更改 seaborn 使用的颜色顺序?示例:
import seaborn as sns
import pandas
data = pandas.DataFrame({"x": [1,2,3], "y": [1,1,1], "color": ["a", "b", "c"]})
sns.pointplot(x="x", y="y", hue="color", data=data)
如何更改 "hue" 中默认调色板的颜色分配?例如,与其从调色板中选择 (blue, green, red),不如选择 (green, blue, red)?我想保持相同的调色板,只是改变颜色的顺序。
调色板上的 Seaborn docs 围绕此起舞,但它是这样工作的:
- 首先,请注意
color_palette()
将 return 您当前的调色板。
- 其次,执行文档中的示例并将当前调色板分配给某个变量,如
current_palette = sns.color_palette()
。
第三,请注意该对象支持__get_item__
,因此您可以获得其中的第一种和第二种颜色
first = current_palette[0]
second = current_palette[1]
第四:注意set_palette()
函数,文档注释将接受RGB元组列表。
最后,制作一个新的调色板作为
sns.set_palette(
[second, first] + current_palette[2:]
)
pointplot
接受键中包含级别名称,值中包含颜色名称的字典,因此您可以这样做。换句话说,palette=dict(a="g", b="b", c="r")
。这是最安全的,但如果您知道要获取(或指定)的色调顺序,您也可以执行 palette=["g", "b", "r"]
.
如何更改 seaborn 使用的颜色顺序?示例:
import seaborn as sns
import pandas
data = pandas.DataFrame({"x": [1,2,3], "y": [1,1,1], "color": ["a", "b", "c"]})
sns.pointplot(x="x", y="y", hue="color", data=data)
如何更改 "hue" 中默认调色板的颜色分配?例如,与其从调色板中选择 (blue, green, red),不如选择 (green, blue, red)?我想保持相同的调色板,只是改变颜色的顺序。
调色板上的 Seaborn docs 围绕此起舞,但它是这样工作的:
- 首先,请注意
color_palette()
将 return 您当前的调色板。 - 其次,执行文档中的示例并将当前调色板分配给某个变量,如
current_palette = sns.color_palette()
。 第三,请注意该对象支持
__get_item__
,因此您可以获得其中的第一种和第二种颜色first = current_palette[0] second = current_palette[1]
第四:注意
set_palette()
函数,文档注释将接受RGB元组列表。最后,制作一个新的调色板作为
sns.set_palette( [second, first] + current_palette[2:] )
pointplot
接受键中包含级别名称,值中包含颜色名称的字典,因此您可以这样做。换句话说,palette=dict(a="g", b="b", c="r")
。这是最安全的,但如果您知道要获取(或指定)的色调顺序,您也可以执行 palette=["g", "b", "r"]
.