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

pandas按行绘制DataFrame柱状图子图报无效颜色错误解决方法

报错原因

开启subplots=True绘制多子图时,pandas对color参数的解析逻辑和单图模式不同:

  • 单图模式下多系列配色需要传入嵌套列表,每个子列表对应一个系列的颜色
  • 子图模式下传入的一维列表元素会按顺序匹配每个绘图系列(也就是你df2里的每一行),如果传入嵌套列表,pandas会把整个内层列表当成单个颜色值解析,无法识别就会抛出Invalid color ['C0', 'C1']错误。
修正代码

你的df2共2行(对应索引3、4,即每个子图内的2根柱子)、64列(每个三碱基序列对应1个子图),要实现所有子图两根柱子固定配色,只需要给color传入长度为2的一维颜色列表即可,顺序和df2的行顺序一一对应。

bar = df2.plot(
    kind='bar' ,
    stacked=False,
    figsize = (20,40),
    title='Grouped Bar Graph with dataframe',
    subplots = True,
    layout=(16,4),
    legend = False,
    sharey = True,
    fontsize = 5,
    ylim = (95,100),
    # 顺序对应df2的两行:第一根柱子蓝色,第二根柱子橙色
    color=['C0', 'C1']
)

如果你要明确指定蓝、橙配色,也可以替换成标准色值:color=['blue', 'orange']或者十六进制色值color=['#1f77b4', '#ff7f0e'],效果一致。

注意事项
  • 颜色顺序严格和df2的行顺序绑定:列表第一个颜色匹配索引为3的行(所有子图的第一根柱),第二个颜色匹配索引为4的行(所有子图的第二根柱)
  • 不要给颜色列表额外嵌套一层方括号,嵌套格式仅适用于subplots=False的单图多系列场景
  • 传入的颜色数量需要和每个子图内的柱子数量(即df2的行数)保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:24:21