Seaborn PointPlot 类别排序问题

BMi*_*ell 1 python seaborn

我一直在尝试在 Seaborn 中使用 pointplot,总的来说它可以满足我的需求,而且我对它的功能印象深刻。

我的用例是相当标准的:

sns.pointplot(x="Category_1", y="Parameter", hue="Category 2", data=df);
Run Code Online (Sandbox Code Playgroud)

我的问题是我用于色调的类别包含以下形式的字符串:

"1 string1", "2 string2", "3 string3", etc....
Run Code Online (Sandbox Code Playgroud)

这是设计使然,以便我可以在排序时获得特定顺序。但是,当我运行 Seaborn 函数时,顺序是不同的。

Seaborn 是按照什么逻辑进行排序的,有没有办法强制执行所需的顺序。如果我做:

A = df.Category2.unique()
A.sort()
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的列表顺序。

mwa*_*kom 5

教程中所述,分类绘图函数遵循一组规则来确定绘图元素的顺序:

  • 如果将类别序列传递给order参数,则使用该顺序。
  • 如果变量是Categorical具有指定类别顺序的熊猫,则使用该顺序。
  • 如果变量是数字,则值按排序顺序显示
  • 否则,这些值将按照它们在 DataFrame 中出现的顺序显示。