【发布时间】:2021-08-17 16:53:14
【问题描述】:
我经常使用hue 参数来区分类别,但似乎 seaborn 在将色调与类别匹配的方式上并不一致(根据我的阅读,它取决于绘制的数据,特别是它的顺序)。我想避免到处传递 hue_order 参数,因为我知道我会在某个时候忘记它并且不会注意到它(这会导致误解,因为我会认为色调是正确的)。
有没有办法全局设置hue_order(所有地块的固定顺序)?
更好的是,是否可以将分类索引设置为所有行为相同(例如,字母数字顺序)?
现在我使用以下丑陋的策略:
SNS_SETTINGS = dict(hue_order=[...])
sns.displot(df, **SNS_SETTINGS, x="time", kind="ecdf", hue="algorithm")
【问题讨论】:
-
要求确保了解您的情况,您是否也将
hue参数也放入字典中,因为它们是成对出现的?因为在这种情况下,您将“永远”不会忘记hue_order,因为您也不会拥有hue。 -
啊,是的,你是对的。此外,我将在几乎所有的绘图中使用这个常数(不仅是
displots)。这可能确实是一个很好的解决方案:D -
我不确定“全局色调顺序”的概念是否有意义,因为它意味着您只使用一个色调变量。您可以做的是在数据对象上设置一个“类别”dtype,它将在任何时候使用该数据时提供排序信息。
-
这取决于,如果您只有字符串,您可以接受按字母顺序对所有色调进行排序。虽然它也不是完美的,但每个类别都有一个色调,全局设置会更好。这样,即使您没有显示所有类别,色调也会保持一致。
标签: seaborn