gpt4 book ai didi

python - 基于值的 Seaborn 条件颜色

转载 作者:行者123 更新时间:2023-11-28 18:33:00 24 4
gpt4 key购买 nike

我有一个 Seaborn 图(在本例中是一个箱形图,这是一个简化版本

sns.boxplot(x="Question", y="Score", hue="Item", data=scores[scores['Item']=='34x'], palette="PRGn")

数据看起来像这样......

    Item    Question    Score   Section    Event    Evaluator
34x Mar1 4 Maritime Boat 6
34x Mar2 3 Maritime Boat 6
34x Multi1 3 Multinet Boat 6
34x Multi2 3 Multinet Boat 6
34x Noise1 4 Noise Boat 6

情节呈现得很好,但我想根据他们的平均分数为每个问题的箱形图着色。 (即任何低于 1 的都是红色,+1-2.5 黄色,+2.5 绿色)。我尝试了几件事但没有很好的结果。任何有助于实现这一点的帮助都将不胜感激。

最佳答案

您可以使用自定义颜色字典作为箱线图调色板参数,它可以是名称、有序列表或字典。

我生成了一个类似于你的数据框

   Item Question     Score
0 A Mar1 2.935605
1 A Mar1 2.754065
2 A Mar1 3.339259
3 A Mar1 1.229478
4 A Mar1 3.248582
5 A Mar2 0.409028
6 A Mar2 1.779707

可以从 df 生成自定义调色板:

custom_palette = {}
for q in set(scores.Question):
avr = (np.average(scores[scores.Question == q].Score))
if avr < 1:
custom_palette[q] = 'r'
elif avr < 2.5:
custom_palette[q] = 'y'
else:
custom_palette[q] = 'g'

并用它为您的箱线图着色:

sns.boxplot(x="Question", y="Score", data=scores, palette=custom_palette,showmeans=True)

enter image description here

关于python - 基于值的 Seaborn 条件颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com