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

Seaborn displot color参数无法更改图表颜色问题求助

解决Seaborn displot颜色不生效的问题

问题分析

调用displot时指定了color='red'但条形仍为默认颜色,核心原因是未明确指定绘图的目标数据列:当直接将pd.DataFrame(res)作为第一个参数传入时,displot会将其识别为data参数,但未指定x/y的情况下,seaborn会默认遍历DataFrame的所有列,此时color参数会被忽略(多列区分的配色逻辑优先级更高)。

可行解决方案

方案1:直接传入列表数据

无需将res转为DataFrame,直接传入一维列表,displot会自动将其作为x轴数据,color参数即可正常生效:

import numpy as np
import pandas as pd
import seaborn as sns

sns.displot(res, color='red', edgecolor=None, binwidth=.5, binrange=(3, 19));

方案2:明确指定DataFrame的列

如果需要保留DataFrame格式,需通过x参数指定具体列名(由于pd.DataFrame(res)生成的是单列DataFrame,默认列名为0):

import numpy as np
import pandas as pd
import seaborn as sns

df = pd.DataFrame(res)
sns.displot(data=df, x=0, color='red', edgecolor=None, binwidth=.5, binrange=(3, 19));

补充说明

之前代码能正常工作可能是因为使用的Seaborn版本较低,旧版本的displot对未指定x/y的一维DataFrame处理逻辑不同,新版本则要求明确指定目标列才能让单个颜色参数生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:22:52