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

运行Flask时出现ValueError:不支持单字符颜色字符串作颜色序列如何解决?

问题原因
  • 该报错和Flask本身无关,来自绘图库matplotlib 3.7+版本的规则变更:新版本不再支持直接传入单字符拼接的字符串作为颜色序列,要求必须传入显式列表格式的色值参数
  • 你代码中my_colors = 'rgbkymc'是字符串类型,直接传给plt.barh的color参数就会触发该错误
  • 另外你代码中plt.savefig的bbox_inches="tight"是HTML转义后的错误写法,实际运行也会报错
解决方案

方法1:直接将色值字符串转为列表

仅需要修改my_colors的定义行即可,代码修改后如下:

cat_order = df2.groupby('Category').agg({'App' : 'count'}).rename({'Category':'Total'}, axis=1).sort_values(by='App', ascending=False).head()
X = cat_order.index
Y = cat_order.App
# 将字符串转成列表符合matplotlib的参数要求
my_colors = list('rgbkymc')

fig = plt.figure(figsize=(8,3),dpi=300)
fig.add_subplot()

plt.barh(X,Y, color=my_colors)
# 修正转义字符的错误,换回正常双引号
plt.savefig('cat_order.png',bbox_inches="tight") 

方法2:自定义显式颜色列表

如果需要自定义颜色,也可以直接写色值列表,支持颜色名、十六进制色值、RGB色值等格式:

my_colors = ['#FF5733', '#33FF57', '#3357FF', '#F333FF', '#FF33A6']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:27:03