You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按字母顺序绘制带渐变色的nutrition_grade_fr标签?

解决方法:按字母排序标签并添加渐变色

关键改动说明

  • 按字母顺序排列标签:先提取nutrition_grade_fr的所有唯一类别,排序后通过hue_order参数传给sns.barplot,强制按字母顺序显示图例和分组
  • 添加渐变色:使用palette参数指定渐变风格的调色板,比如"viridis"(从蓝到黄的自然渐变),也可根据需求替换为"coolwarm"、"magma"等其他渐变系

修改后的完整代码

import seaborn as sns
import matplotlib.pyplot as plt 

df = nutri_app

# 提取并按字母排序nutrition_grade_fr的有效类别
sorted_grades = sorted(df["nutrition_grade_fr"].dropna().unique())

# 遍历变量绘制分组柱状图
for elem in ['energy_100g', 'sugars_100g','fat_100g','proteins_100g']:
    fig, ax = plt.subplots(figsize=(30,6))
    # 传入排序后的标签顺序与渐变调色板
    sns.barplot(
        x="pnns_group1", 
        y=elem, 
        hue="nutrition_grade_fr", 
        data=df,
        hue_order=sorted_grades,
        palette="viridis"
    )
    
    ax.set_title(f"nutriscore by categories related to {elem} quantity variable")
    plt.show()

自定义渐变扩展

如果需要更贴合类别的渐变配色,可以手动生成对应数量的渐变色彩:

# 根据标签数量生成均匀渐变的调色板
custom_palette = sns.color_palette("viridis", len(sorted_grades))

将上述custom_palette传入sns.barplot的palette参数即可实现更精准的渐变匹配。

内容的提问来源于stack exchange,提问作者yoopiyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:01:12